Linux C——數(shù)據(jù)類型那些事(坑)

不說別的,先列舉幾個(gè)C語言中經(jīng)常要用到的類型

char

int

long

float

double

我們姑且只列出這幾個(gè)數(shù)據(jù)類型,我們的重點(diǎn)不是在研究各個(gè)數(shù)據(jù)類型的長度,我們都知道char是1個(gè)字節(jié)、int和float都是4個(gè)字節(jié),long和double是8個(gè)字節(jié)奈搜。重點(diǎn)的是我們要在程序中輸出各種類型的長度。是的盯荤,你猜的沒錯(cuò)馋吗,這個(gè)東西很簡單,我們可以立刻寫代碼秋秤,所以我就先不多說宏粤,先把代碼給大家貼出來脚翘。

#include? //包含標(biāo)準(zhǔn)輸入輸出函數(shù)庫

int main()

{

printf("字符型字長為%d\n",sizeof(char));

printf("整型字長為%d\n",sizeof(int));

printf("長整型字長為%d\n",sizeof(long));

printf("單精度浮點(diǎn)型字長為%d\n",sizeof(float));

printf("雙精度浮點(diǎn)型字長為%d\n",sizeof(double));

}

代碼如上,相信大家都可以看得懂吧绍哎,看不懂的要么咱們不是同一個(gè)行業(yè)来农,要不就是大學(xué)不是理科專業(yè)。接下來在linux系統(tǒng)之下來編譯這段代碼崇堰,首先在centos7執(zhí)行沃于。相關(guān)依賴的版本如下。

gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)

我們將以上代碼寫在一個(gè)名為typesize.c的文件里面海诲,保存后繁莹,在命令行中輸入

gcc -o typesize.out typesize.c

執(zhí)行完上面的命令之后會(huì)生成一個(gè)typesize.out的可執(zhí)行文件,然后執(zhí)行./typesize.out

會(huì)有如下輸出

字符型字長為1

整型字長為4

長整型字長為8

單精度浮點(diǎn)型字長為4

雙精度浮點(diǎn)型字長為8

編譯特幔、執(zhí)行都沒有報(bào)錯(cuò)咨演,非常完美,當(dāng)然從一開始到現(xiàn)在是沒有問題的蚯斯。接下來我們?cè)趗buntu16.04的Linux發(fā)行版中執(zhí)行以上的操作薄风。

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

我們一樣將代碼寫在一個(gè)名為typesize.c的文件里面,保存后溉跃,執(zhí)行編譯命令

gcc -o typesize.out typesize.c

有了第一次的成功經(jīng)驗(yàn)村刨,我很自信的覺得第二次肯定沒有問題告抄,然后我在終端上看到了如下信息

typesize.c:4:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]

printf("字符型字長為%d\n",sizeof(char));

^

typesize.c:5:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]

printf("整型字長為%d\n",sizeof(int));

^

typesize.c:6:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]

printf("長整型字長為%d\n",sizeof(long));

^

typesize.c:7:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]

printf("單精度浮點(diǎn)型字長為%d\n",sizeof(float));

^

typesize.c:8:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]

printf("雙精度浮點(diǎn)型字長為%d\n",sizeof(double));

看到這里我感覺雖說C語言沒有Java那么強(qiáng)大的跨平臺(tái)性撰茎,但最起碼我在linux中寫的代碼應(yīng)該是可以公用的哇,居然發(fā)生了這樣的事情打洼,這時(shí)我的內(nèi)心是崩潰的龄糊。崩潰了之后但我還是想不明白,于是乎我硬著頭皮去看編譯時(shí)候的報(bào)錯(cuò)募疮,憑借我這個(gè)大學(xué)英語四級(jí)都不到的英語水平炫惩,我還是發(fā)現(xiàn)了端倪,說的是printf中%d期望的數(shù)據(jù)是一個(gè)int類型阿浓,但是第二個(gè)參數(shù)有l(wèi)ong unsigned int類型他嚷,也就是無符號(hào)的長整型。再仔細(xì)回憶了一下芭毙,發(fā)現(xiàn)Centos7和ubuntu16.04的gcc版本不同筋蓖,一個(gè)是4.8.xx另一個(gè)是5.4.xx,差了這么多版本退敦,我想可能是gcc的版本的影響吧粘咖。

為了確認(rèn)事實(shí)是否和我猜測的一樣,我又去ubuntu14.04的版本上去做了同樣的事情侈百。ubuntu14.04的gcc版本是gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)瓮下,我想這下應(yīng)該沒問題了翰铡,敲下了相同的編譯命令,但結(jié)果確實(shí)和16.04的時(shí)候一模一樣讽坏。簡直崩潰了锭魔。

看來centos和ubuntu也是有這么微小而又讓人頭疼的差異呀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末震缭,一起剝皮案震驚了整個(gè)濱河市赂毯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拣宰,老刑警劉巖党涕,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巡社,居然都是意外死亡膛堤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門晌该,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肥荔,“玉大人,你說我怎么就攤上這事朝群⊙喙ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵姜胖,是天一觀的道長誉帅。 經(jīng)常有香客問我,道長右莱,這世上最難降的妖魔是什么蚜锨? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮慢蜓,結(jié)果婚禮上亚再,老公的妹妹穿的比我還像新娘。我一直安慰自己晨抡,他們只是感情好氛悬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耘柱,像睡著了一般如捅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帆谍,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天伪朽,我揣著相機(jī)與錄音,去河邊找鬼汛蝙。 笑死烈涮,一個(gè)胖子當(dāng)著我的面吹牛朴肺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坚洽,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼戈稿,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了讶舰?” 一聲冷哼從身側(cè)響起鞍盗,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跳昼,沒想到半個(gè)月后般甲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹅颊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年敷存,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堪伍。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锚烦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帝雇,到底是詐尸還是另有隱情涮俄,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布尸闸,位于F島的核電站彻亲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏室叉。R本人自食惡果不足惜睹栖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一硫惕、第九天 我趴在偏房一處隱蔽的房頂上張望茧痕。 院中可真熱鬧,春花似錦恼除、人聲如沸踪旷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽令野。三九已至,卻和暖如春徽级,著一層夾襖步出監(jiān)牢的瞬間气破,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工餐抢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留现使,地道東北人低匙。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像碳锈,于是被迫代替她去往敵國和親顽冶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容