前言
在百度百科上看到實現(xiàn) itoa 函數(shù)的源代碼,里面有一行代碼引起了我的興趣:
1unsigned unum;
通常,我們定義無符號的一個變量,一般采用如下方式:
1unsigned char variable;
2unsigned short variable;
3unsigned int variable;
那么省略 unsigned 后面的數(shù)據(jù)類型關(guān)鍵字,直接使用 unsigned 定義變量,這個變量會是什么類型的呢?我查了一下,unsigned若省略后一個關(guān)鍵字,大多數(shù)編譯器都會認為是unsigned int,是不是這樣呢,我們可以寫個簡單的代碼驗證一下。
測試
我測試的gcc編譯器版本為 7.5.0 :

測試代碼如下:
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
可以看到,在我使用的這個版本的 gcc 編譯器下測試,unsigned 后面省略數(shù)據(jù)類型關(guān)鍵字定義出來的變量,其占用的字節(jié)長度與 unsigned int 類型定義的變量占用的字節(jié)長度相同,所以在我這個版本的gcc編譯器下,unsigned 后省略一個關(guān)鍵字,會認為是unsigned int 類型。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
gcc編譯器
+關(guān)注
關(guān)注
0文章
78瀏覽量
4014
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
變量的聲明和定義有什么區(qū)別和聯(lián)系
變量的聲明和定義是編程中的兩個重要概念,它們在語法和語義上有一些區(qū)別和聯(lián)系。在本文中,我將詳細介紹變量的聲明和定義之間的區(qū)別和聯(lián)系。 首先,讓我們從
這句定義變量的意思是什么?
unsigned char xdata UART_BASE[256] _at_ 0xF400;unsigned char xdata UART1_BASE[256] _at_ 0xF500;unsigned char xdata
發(fā)表于 01-16 17:22
定義變量的位置
。void delay(unsigned int i);//函數(shù)聲名***it LE = P1^0;//定義輸出使能控制腳在P1.0上char DelayCNT;//定義變量 //此表
發(fā)表于 03-11 17:04
xdata定義的變量同直接定義的變量同名???
在51單片機中。如下定義:unsigned char xdata num;unsigned char num;這樣定義會不會有問題???在模塊中用的時候是用哪個
發(fā)表于 05-12 14:50
ARM定義特殊寄存器(*(volatile unsigned long *))的理解
*) 0xE0028000))為例:作為一個宏定義語句,define是定義一個變量或常量的偽指令。首先( volatile unsigned long * )的意思是將后面的那個地址
發(fā)表于 11-16 20:44
dsp2000中unsigned char變量都是16位的
在2812中定義了unsigned char 變量為啥在仿真查看變量值的時候發(fā)現(xiàn)都是16位的呢
發(fā)表于 11-14 10:43
請問430變量定義volatile是什么意思?
430中為什么有些變量定義是這樣寫的: volatile unsigned int i;這volatile是什么意思,這樣定義有什么作用?
發(fā)表于 03-29 02:58
Python私有變量的定義方法
學(xué)過編程語言的人員,都知道私有變量在編程中必不可少,與Java和C語言用private關(guān)鍵字定義私有變量不同,Python是在變量前面加上雙橫杠(例如:__test)來標(biāo)識,Pytho
發(fā)表于 02-13 16:49
?1957次閱讀
單片機C語言中變量的定義方法解析
#pragma rambank0 ;即以關(guān)鍵詞#pragma開始,rambank0指明資料區(qū)塊為第0塊。
unsigned char m_acc; ;定義一個無符號字符型變量m_acc
發(fā)表于 09-29 16:26
?1w次閱讀
C51 單片機的 C 語言中的變量定義與硬件之間的關(guān)系
名 [= &所指向的變量名]指針變量的賦值:(不用 *)指針變量變量名 = 所指向的變量名修飾符修飾符釋義unsigned無符號au
發(fā)表于 11-23 16:51
?3次下載
C語言里函數(shù)的定義、子函數(shù)的使用及變量的作用域
這篇介紹C語言里函數(shù)的定義、子函數(shù)的使用。接著介紹變量的作用域,定義全局變量、靜態(tài)變量、只讀變量
oracle sql 定義變量并賦值
在Oracle SQL中,變量是用來存儲數(shù)據(jù)值的標(biāo)識符。通過定義和使用變量,我們可以在SQL語句中使用它們來存儲和處理數(shù)據(jù),從而實現(xiàn)更靈活和動態(tài)的查詢和操作。 在Oracle SQL中,定義
西門子博途:如何定義PLC變量
在 TIA Portal 中,可以在程序段中創(chuàng)建用戶程序時直接創(chuàng)建變量。 以下步驟介紹了如何定義 PLC 變量以及將插入的 LAD 指令與 PLC
發(fā)表于 12-29 18:10
?4177次閱讀
直接使用unsigned定義變量?
評論