C C 「潛規則」之 預設資料型別

2021-09-26 23:32:35 字數 492 閱讀 8365

原則上來說,c/c++是一種嚴格資料型別的語言,簡單說,語法對於函式宣告、賦值、傳參等涉及到資料型別的地方都會有嚴格的驗證和匹配規則。

但也有」例外「——c/c++的潛規則之預設資料型別。

這裡舉兩個例子:

1.函式引數

bool dosomething(unsigned data);

上面的寫法是合法的,可以通過編譯,其中,data的資料型別是unsigned int,即無符號整型。

注意,不能寫成這樣:

bool dosomething(data);

編譯器是不會把data腦補成int型別的。

2.函式返回值

foo(void);

在c中這樣的寫法是合法的,foo的返回值型別預設為int型別;值得注意的是,c++中是不允許這樣寫的。

unsigned foo(void);

參考例1,很容易知道,foo的返回值型別是unsingned int型別,這在c和c++中都是合法的。

C C 資料型別

由於對各種資料型別的長度記憶有點亂,便整理下用到的資料型別,方便查詢與記憶。一 資料型別介紹如表 二 說明 1 型別修飾符signed和unsigned用於修飾字元型和整形。2 型別修飾符short和long用於修飾字元型和整形。3 當用signed和unsigned short和long修飾int...

c c 資料型別轉換

c c 資料型別轉換1 float,char,string,cstring unicode 統一碼 萬國碼 單一碼 是一種在計算機上使用的字元編碼。它為每種語言中的每個字元設定了統一並且唯一的二進位制編碼,以滿足跨語言 跨平台進行文字轉換 處理的要求。1990年開始研發,1994年正式公布。隨著計算...

C C 資料型別長度

我們在編寫 c c 時肯定希望在32位和64位系統都能正常執行,那麼我們就需要注意基本資料型別的長度在32位與64位中的變化 另外這種變化還與編譯器相關。64位 gcc 是 lp64 即 long 和 pointer 是64位,具體的 gcc 編譯器 32 位 64位 char 1 1short 2...