3 回答

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
auto是類似的修飾符static。它定義了變量的存儲(chǔ)類。但是,由于局部變量的默認(rèn)值為auto,因此通常不需要手動(dòng)指定它。
此頁面列出了C中的不同存儲(chǔ)類別。

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
該auto關(guān)鍵字是在C語言中無用。之所以這樣,是因?yàn)樵贑語言之前,存在一種B語言,其中使用該關(guān)鍵字來聲明局部變量是必需的。(B被開發(fā)為NB,后來變成了C)。
這是B的參考手冊。
如您所見,該手冊中包含大量示例auto。之所以如此,是因?yàn)闆]有int關(guān)鍵字。需要使用某種關(guān)鍵字來說“這是變量的聲明”,并且該關(guān)鍵字還指示它是局部變量還是外部變量(auto與extrn)。如果您不使用任何一個(gè),則將出現(xiàn)語法錯(cuò)誤。也就是說,x, y;它本身不是聲明,而是聲明auto x, y;。
由于在開發(fā)語言時(shí)必須將用B編寫的代碼庫移植到NB和C上,因此該語言的較新版本帶來了一定的負(fù)擔(dān),從而提高了向后兼容性,從而減少了工作量。在的情況下auto,程序員不必搜尋每次出現(xiàn)的情況auto并將其刪除。
從手冊中可以明顯看出,C中現(xiàn)在過時(shí)的“隱式int”殘?。軌蛟谇懊鎚ain() { ... }不寫任何東西int)也來自B。這是支持B代碼的另一個(gè)向后兼容特性。函數(shù)沒有在B中指定的返回類型,因?yàn)闆]有類型。一切都是單詞,就像許多匯編語言一樣。
請注意如何聲明一個(gè)函數(shù)extrn putchar,然后使它唯一成為標(biāo)識(shí)符使用的函數(shù):它用于函數(shù)調(diào)用表達(dá)式(如)中putchar(x),這就是告訴編譯器將該無類型字視為函數(shù)指針的原因。
- 3 回答
- 0 關(guān)注
- 504 瀏覽
添加回答
舉報(bào)