成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么 “auto a = 1;” 在C語言中可以編譯通過?

開發 后端
auto 是一個古老的C語言關鍵字,它的代表含義是 “局部作用域”。 `auto a` 等價于 `auto int a`,而且函數里的變量定義默認就是局部作用域的變量,所以在該例子中它也等價于`int a`.

問題(來自lee77):

  1. int main(void)  
  2. {  
  3.     auto a = 1;  
  4.     return 0;  

把如上所示的代碼寫在擴展名為.c的文件里面,用MS Visual Studio 2012編譯器編譯的時候不會報錯。我一直認為,當你使用.c的擴展名時,編譯器會按照C語言的語法來進行編譯,而不是C++。而且,據我所知,不顯示定義類型的auto變量聲明只有從C++11標準之后才被允許,在C++11中auto的含義是聲明該變量的類型可以被初始化法式推導出來的。

這是不是意味著我的編譯器不嚴格遵守C語言的標準,或者這段代碼實際上在C語言中是正確的?

***答案(來自larsmans):

auto 是一個古老的C語言關鍵字,它的代表含義是 “局部作用域”。 `auto a` 等價于 `auto int a`,而且函數里的變量定義默認就是局部作用域的變量,所以在該例子中它也等價于`int a`.

這個關鍵字(auto)事實上是 C語言的前身——B語言 遺留下來的,B語言沒有基本類型: 一切類型都是 int, pointer to int, array of int . (*) 這些類型的聲明只能是 `auto` 或者 `extern`。C語言繼承了 “任何類型是int” 作為默認法則,所以你能用如下方法聲明整型:

  1. auto a;  
  2. extern b;  
  3. static c; 

ISO C標準 拋棄了這個法則,但是當然有一些編譯器為了向后兼容而接受這個法則。如果你還是覺得陌生,你應該明白有一個類似的的法則在下面語句中也生效:

  1. unsigned d; // actually unsigned int 

上式的代碼在現代的代碼中是很常見的。

C++11 復用了這個關鍵字(auto),既然它的原始含義很少被C++程序員使用,所以在C++11中被復用來作為類型推導。 這樣的做法通常是安全的,因為”一切類型都是int”這個C語言的法則已經被C++98標準中被拋棄; 唯一可能不安全的用法是 `auto T a`, 不過也沒人會這么做。()

(*) 在B語言中的字符串處理很有意思: 你會使用int數組和包裝多個字符在int數組的每個成員里。B語言事實上就是不同語法的BCPL(BCPL的變種)。

原文鏈接: stackoverflow   翻譯: 伯樂在線 - aszxqw

譯文鏈接: http://blog.jobbole.com/67040/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2023-09-07 10:50:22

2012-06-12 09:47:17

C語言

2020-09-04 15:34:07

C編程語言開發

2010-01-11 15:29:13

引用C++語言

2024-02-18 12:39:15

C++autodecltype

2010-01-22 15:14:37

學習C++

2010-11-03 09:22:00

C語言

2025-06-26 02:29:00

C語言void*機制

2023-01-30 15:41:10

Channel控制并發

2011-03-30 11:01:13

C語言隨機

2016-12-27 15:17:39

編程語言加減法

2023-11-04 16:26:18

C語言數組

2015-05-25 15:31:56

C語言學習和使用 C 語言

2020-10-09 11:06:38

C語言桌面語法

2022-05-24 08:31:05

C語言檢查數組

2023-01-12 08:52:50

GoroutinesGo語言

2022-07-29 08:25:02

volatileC語言原子

2011-12-25 15:35:05

ibmdwJavaC++

2023-10-27 11:21:20

C語言Multics語言

2023-12-21 11:46:48

C語言柔性數組開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区精品 | 亚洲美女天堂网 | 久久精品国产一区二区电影 | a级在线免费观看 | 爱高潮www亚洲精品 中文字幕免费视频 | 福利网站导航 | 99久久99| 午夜精品一区二区三区在线观看 | 欧美女优在线观看 | 超级乱淫av片免费播放 | 中文字幕在线观看 | 欧美日韩在线免费 | 欧美成人激情视频 | 天天操天天干天天透 | 激情欧美日韩一区二区 | 国产一区二区三区免费观看在线 | 日本淫视频 | 国内精品久久久久久 | 日韩欧美国产精品一区二区 | 香蕉视频91 | 精品一区二区三区在线观看国产 | 免费一级欧美在线观看视频 | 一级特黄色毛片 | 久久精品视频在线播放 | 免费看a| 国产成人91视频 | 国产精品一区二区在线 | 久久久高清 | 91亚洲精品国偷拍自产在线观看 | 日本久久久久久久久 | 日韩超碰在线 | 国产高清精品一区二区三区 | 亚洲国产精品一区二区三区 | 午夜伦理影院 | 一区二区三区国产在线观看 | 一区二区三区视频在线 | 日韩欧美国产一区二区三区 | 天天拍天天操 | 欧美日韩成人在线 | 国产精品久久久久久久免费大片 | 亚洲高清av在线 |