C语言sizeof
一、關(guān)于sizeof
1.它是C的關(guān)鍵字、是一個運算符,不是函數(shù);
2.一般用法為sizeof 變量或sizeof(數(shù)據(jù)類型);后邊這種寫法會讓人誤認為是函數(shù),但這種寫法是為了防止和C中類型修飾符(static、const、extern等)沖突。
二、demo
1.源碼
test.c
?
#include <stdio.h>int main() {int i;printf("sizeof i is %d\n",sizeof i);/*以下語句不屏蔽會提示:test.c:12: 錯誤: expected expression before ‘int’因為,基本數(shù)據(jù)類型int前的關(guān)鍵字會被認為成是類型修飾符(類似static、const、extern等,而sizeof關(guān)鍵字不是類型修飾符)正確寫法:printf("sizeof(int) is %d\n",sizeof(int));*///printf("sizeof int is %d\n",sizeof int);enum Color{GREEN = 1,RED,BLUE,GREEN_RED = 10,GREEN_BLUE}ColorVal;printf("sizeof ColorVal is %d\n",sizeof ColorVal);/*以下語句不屏蔽會提示:test.c:26: 錯誤: expected expression before ‘enum’,原因同上。正確寫法:printf("sizeof(enum Color) is %d\n",sizeof(enum Color));*///printf("sizeof enum Color is %d\n",sizeof enum Color); union check{int i;char ch;} c;printf("sizeof c is %d\n",sizeof c);/*以下語句不屏蔽會提示:test.c:37: 錯誤: expected expression before ‘enum’,原因同上。正確寫法:printf("sizeof(union check) is %d\n",sizeof(union check));*///printf("sizeof union check is %d\n",sizeof union check);struct list{int i;char ch;} a;printf("sizeof a is %d\n",sizeof a);/*以下語句不屏蔽會提示:test.c:48: 錯誤: expected expression before ‘enum’,原因同上。正確寫法:printf("sizeof(struct list) is %d\n",sizeof(struct list));*///printf("sizeof struct list is %d\n",sizeof struct list);return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/siqi/p/4652952.html
總結(jié)
- 上一篇: 【转载】OmniGraffle (四)化
- 下一篇: [BZOJ2654] tree