前言
在百度百科上看到實(shí)現(xiàn) itoa 函數(shù)的源代碼,里面有一行代碼引起了我的興趣:
1unsigned unum;
通常,我們定義無(wú)符號(hào)的一個(gè)變量,一般采用如下方式:
1unsigned char variable;
2unsigned short variable;
3unsigned int variable;
那么省略 unsigned 后面的數(shù)據(jù)類型關(guān)鍵字,直接使用 unsigned 定義變量,這個(gè)變量會(huì)是什么類型的呢?我查了一下,unsigned若省略后一個(gè)關(guān)鍵字,大多數(shù)編譯器都會(huì)認(rèn)為是unsigned int,是不是這樣呢,我們可以寫個(gè)簡(jiǎn)單的代碼驗(yàn)證一下。
測(cè)試
我測(cè)試的gcc編譯器版本為 7.5.0 :
測(cè)試代碼如下:
1int main(void)
2{
3 unsigned val = 0;
4 printf("unsigned int: %d byten", sizeof(unsigned int));
5 printf("unsigned: %d byten", sizeof(val));
6 return 0;
7}
輸出:
1unsigned int: 4 byte
2unsigned: 4 byte
可以看到,在我使用的這個(gè)版本的 gcc 編譯器下測(cè)試,unsigned 后面省略數(shù)據(jù)類型關(guān)鍵字定義出來(lái)的變量,其占用的字節(jié)長(zhǎng)度與 unsigned int 類型定義的變量占用的字節(jié)長(zhǎng)度相同,所以在我這個(gè)版本的gcc編譯器下,unsigned 后省略一個(gè)關(guān)鍵字,會(huì)認(rèn)為是unsigned int 類型。
-
gcc編譯器
+關(guān)注
關(guān)注
0文章
78瀏覽量
3664
發(fā)布評(píng)論請(qǐng)先 登錄
變量的聲明和定義有什么區(qū)別和聯(lián)系
這句定義變量的意思是什么?
定義變量的位置
xdata定義的變量同直接定義的變量同名???
ARM定義特殊寄存器(*(volatile unsigned long *))的理解
dsp2000中unsigned char變量都是16位的
請(qǐng)問(wèn)430變量定義volatile是什么意思?
用unsigned char i定義局部變量報(bào)錯(cuò)是怎么回事
Python私有變量的定義方法
單片機(jī)C語(yǔ)言中變量的定義方法解析
C51 單片機(jī)的 C 語(yǔ)言中的變量定義與硬件之間的關(guān)系

C語(yǔ)言里函數(shù)的定義、子函數(shù)的使用及變量的作用域
oracle sql 定義變量并賦值
西門子博途:如何定義PLC變量

評(píng)論