因此,sizeof 操作符也可以用于 void 和函数类型,并返回 1。选项 -Wpointer-arith 会在使用这些扩展时发出警告。
很多答案说取决于cpu 是不准确的:AMD64cpu 是64位的,64位虚拟地址. 可以在上面运行64位 Windowst ...
在这个示例中,sizeof(void*) 计算的是 void* 类型指针的大小,void* 类型指针可以指向任何数据类型的对象。在不同的平台上运行这个程序,可能会输出不同的结果,例如: 在32 位系统上运行: Size of pointer: 4 byte(s) 复制代码 在64 位系统上运行: Size of pointer: 8 byte(s) 复制代码 需要注意的是,尽管...
这是因为void被视为一个不完整类型,没有定义的值。因此,从标准的角度看,试图对void进行大小计算是无效的。然而,GCC实际上允许这种操作,并将结果视作1字节。根据相关文献,GCC允许对void指针实施加减操作,这种操作会将void类型视为1字节大小,以使得算术运算有效,sizeof(void)返回1字节大小,而使用-Wpointer-arith选项...
The option -Wpointer-arith requests a warning if these extensions are used. 但是在其他编译器下结果怎么样,没有试过。 所以总结一下,sizeof(void)没什么实际意义。 但是void * 类型就非常的实用。 它可以用来定义变量,表示变量是个指针,但是指针指向什么类型的数据,只有等使用的时候才知道。
voidfunc(inta[5]){printf("func: sizeof(a)=%d\n",sizeof(a));}intmain(intargc,char*argv[...
void_size.c:15: error: invalid application of ‘sizeof’ to a void type void_size.c:16: error: ISO C++ forbids applying ‘sizeof’ to an expression of function type References 1.http://gcc.gnu.org/onlinedocs/gcc-4.4.6/gcc/Pointer-Arith.html...
SIZEOF(short); SIZEOF(int); SIZEOF(long); SIZEOF(longlong); SIZEOF(float); SIZEOF(double); SIZEOF(longdouble);//depends on -m128bit-long-doubleSIZEOF(_Complex); SIZEOF(void); SIZEOF(void*); SIZEOF(void(*)(void));//function pointerSIZEOF(enum{E}); ...
这意味着 sizeof(int*)、sizeof(char*) 和sizeof(void*) 在32 位系统上都将返回 4,在 64 位系统上都将返回 8。 需要注意的是,sizeof 对于指针类型返回的是指针本身的大小,而不是指针所指向的数据类型的大小。如果你需要计算指针所指向的数据类型的大小,可以使用 sizeof(*pointer)。例如,如果你有一个 ...
编程基础-c语言中指针、sizeof用法总结 1、指针 学习C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可...