本文介绍了从int转换为void *并返回int的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,


如果以前提到这里,我道歉。

通过新闻组搜索我找到了
$的变种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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-31 06:57