对于所有数据类型,所有数据指针在一个平台中的大小是否相同?是char*,int*,long*甚至是long long*同样大小的(在给定的平台)?
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
不必要。该标准不保证sizeof(double*) == sizeof(int*)
。例如,假设处理器具有两个具有不同宽度的地址总线(如在一些哈佛架构处理器上),它可以具有不同大小的指针。
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
请注意C标准所说的内容 - 正如John Bode所引用的那样。另请注意,C标准根本没有说明函数指针的大小。
POSIX标准规定了一些额外的要求:
2.12.3指针类型
所有函数指针类型应与void指向的类型指针具有相同的表示形式。将函数指针转换为void *不得改变表示。这种转换产生的void *值可以使用显式转换转换回原始函数指针类型,而不会丢失信息。
注意:ISO C标准不要求这样,但它是POSIX一致性所必需的。
- 3 回答
- 0 关注
- 377 浏览
添加回答
举报
0/150
提交
取消