问题描述
大家好,
如果以前提到这里,我道歉。
通过新闻组搜索我找到了
$的变种b $ b我的问题,但不完全是我想的。
如果在给定的平台上,我保证:
sizeof(整数) < = sizeof(void *)
将int存储在void *中是否安全并将其转换为int
而不截断/丢失数据?
其次,是标准中定义的void *(或char *),
的最小大小,还是完全平台
依赖?
TIA,
Pranab
Hi All,
I apologize if this has been brought up here before.
Searching through the newsgroup I found variants of
my question, but not exactly what I am thinking about.
If on a given platform, I am guaranteed that:
sizeof(integer) <= sizeof(void*)
Is it safe to store an int in a void* and cast it
back to int without truncating/losing data ?
Secondly, is the minimum size of a void* (or char*),
defined in the standards or is it entirely platform
dependant ?
TIA,
Pranab
推荐答案
在C99托管环境中,指向void的指针必须是至少17位
宽。
Jeremy。
In a C99 hosted environment a pointer to void must be at least 17 bits
wide.
Jeremy.
我不知道你在这里问的是什么。没有C对象
的'sizeof''可以小于1.没有非聚合
对象需要'sizeof''大于1。 />
所有标准必须说明你的问题是
1< = sizeof(void *)&& sizeof(void *)== sizeof(char *)
....每个实现都可以自由选择任何值
满足这些constratints。
-
我很想成为第一个试图回答这个问题的人,我很高兴
我等了; - )
无论如何,杰里米提出了这个问题在第一次阅读你的帖子后,立即突然出现在我的
心中的事情:为什么?
尽管我想到使用工会,我还是皱起了眉头,在这个
的特殊情况下,我想到了你提出的建议(我的耳朵开始摆动)时,我的鼻子翘得更高。如果使用工会可能会让你失去这样一个丑陋的演员的耻辱吗?
-leor
-
Leor Zolman --- BD软件---
C / C ++,Java,Perl和Unix的现场培训
C ++用户:下载BD Software的免费STL错误消息解密器: br />
这篇关于从int转换为void *并返回int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!