3 回答

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

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