c语言 - (int) sizeof(void *) 和 int 有什么区别?



我只是C编程的初学者。我可以问一个简单的问题吗?(int) sizeof(void *)int有什么区别?

例如)

#define ptrint          int
#define PTRINT          ((int) sizeof(void *))

第一种情况充当 int 的别名,因此您可以使用 ptrint 而不是 int。

第二种情况是指针的大小(以字节为单位)。因此,例如在 32 位系统上,它将返回 4。

ptrint a = 8;
ptrint b = a;
int sizeofptr = PTRINT;

一个是类型,另一个是返回类型大小的表达式。

使用 ptrint,您只需定义一个新类型,它只是 int 的别名,例如:

ptrint a;
a = 5;
printf("%d",(int) a); // all this is ok.

使用 PTRINT,您可以定义一个整数常量,该常量将包含系统上 void* 指针的大小。例:

printf("Size of a void* pointer is %dn",PTRINT); // will work. 
PTRINT a;  // will fail

int) sizeof(void *)) 是一个值(取决于你的系统和编译器实现),int 是一个类型。

最新更新