如何找到类型"指针的大小?" 例如,如果我想知道整数的大小,我可以使用" sizeof(int)"。指针的等价物是什么? 是否可以在不初始化指针的情况下执行此操作?
答案 0 :(得分:4)
Network is unreachable
通常会产生体系结构指针的大小,尽管可能存在指向特定类型的指针较小的体系结构 - 因为sizeof(void*)
可以保证允许对任何数据指针进行完整的往返(C99§6.3.2.3¶1),它应该肯定大于或等于所有其他数据指针。
指向函数的指针是一个完全不同的野兽,它可能需要比普通void *
更多的空间(想想微控制器,其中代码和数据可能位于完全不同的地址空间中)。在这里你可以用void *
,之类的东西来了解情况,尽管IIRC没有阻止特定的实现为每个函数指针类型实现不同的大小,C99§6.3.2.3 ¶8要求函数指针必须经过任何其他函数指针类型的往返,所以我想使用任何函数指针类型探测函数指针大小是安全的,就像sizeof(void (*)())
是一个很好的数据量度一样指针大小。
答案 1 :(得分:1)
答案 2 :(得分:0)
“指针”不是一种类型。它可以是一种类型的一部分。 “指向int的指针”将是一个类型的示例,您可以通过编写sizeof(int *)
来找到它的大小。
不同类型的指针可能具有不同的大小,但在现代硬件上它们通常都是相同的。