簡體   English   中英

(int)sizeof(void *)和int有什么區別?

[英]What's the difference between (int) sizeof(void *) and 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 %d\n",PTRINT); // will work. 
PTRINT a;  // will fail

((int)sizeof(void *))是一個值(取決於您的系統和編譯器實現),int是一種類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM