所以我们知道标准并不强制指针大小相等。 (here https://stackoverflow.com/questions/1241205/are-all-data-pointers-of-the-same-size-in-one-platform and here https://stackoverflow.com/questions/916051/are-there-are-any-platforms-where-pointers-to-different-types-have-different-siz) (而不是谈论函数指针)
我想知道实际上这怎么会成为一个问题。我们知道void *
可以容纳任何东西,所以如果指针大小不同,那将是最大的大小。鉴于此,分配一个void **
to a char **
意味着麻烦。
我的问题是假设有多么危险void *
and char *
有相同的尺寸吗?实际上是否有一种架构不是这样的?
而且,16位dos也不是我想听到的! ;)
void *
and char *
保证具有相同的尺寸。
void **
不保证与以下尺寸相同char **
(但很可能在您的实施中他们会这样做)。
(C99,6.2.5p27)“指向 void 的指针应具有与指向字符类型的指针相同的表示和对齐要求 [...] 指向其他类型的指针不需要具有相同的表示或对齐要求。”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)