對c語言各個版本標準的整理
c90:
1、增加了真正的標準庫;
2、新的預處理命令與特性;
3、函式原型允許在函式申明中;
4、指定引數型別一些新的關鍵字,包括 const、volatile 與 signed;
5、寬字元、寬字串與多位元組字元;
6、對約定規則、宣告和型別檢查的許多小改動與澄清;
c99:
1、增加了對編譯器的限制,比如源程式每行要求至少支援到 4095 位元組,變數名函式名的要求支援到 63 位元組。
2、增強了預處理功能。
3、增加了新關鍵字 restrict, inline, _complex, _imaginary, _bool;支援 long long, long double _complex, float _complex 等型別;
4、支援不定長的陣列。
5、變數聲名不必放在語句塊的開頭,,for 語句提倡寫成 for(int i=0;i<100;++i) 的形式,即i 只在for 語句塊內部有效。
6、允許採用(type_name) 類似於 c++ 的建構函式的形式構造匿名的結構體。
7、初始化結構的時候允許對特定的元素賦值。
8、格式化字串中,利用 \u 支援 unicode 的字元。
9、支援 16 進製的浮點數的描述;printf scanf 的格式化串增加了對 long long int 型別的支援;浮點數的內部資料描述支援了新標準,可以使用 #pragma 編譯器指令指定。
10、除了已有的linefile以外,增加了func得到當前的函式名。
11、允許編譯器化簡非常數的表示式;取消了函式返回型別預設為 int 的規定。
12、修改了 / % 處理負數時的定義,這樣可以給出明確的結果。
13、允許 struct 定義的最後乙個陣列不指定其長度,寫做 (flexible array member)。
14、const const int i 將被當作const int i 處理;輸入輸出對寬字元以及長整數等做了相應的支援。
15、增加和修改了一些標準標頭檔案。
c11:
1、對齊處理(alignment)的標準化(包括_alignas標誌符,alignof運算子, aligned_alloc函式以及標頭檔案。
2、_noreturn 函式標記,類似於 gcc 的attribute((noreturn))。
3、_generic 關鍵字。
4、多執行緒(multithreading)支援
5、增強的unicode的支援
6、刪除了 gets() 函式,使用乙個新的更安全的函式gets_s()替代。
7、增加了邊界檢查函式介面,定義了新的安全的函式,例如 fopen_s(),strcat_s()
8、匿名結構體/聯合體支援。這個在gcc早已存在,c11將其引入標準。
9、靜態斷言(static assertions),_static_assert(),在解釋 #if 和 #error 之後被處理。
10、新的 fopen() 模式,(「…x」)。類似 posix 中的 o_creat|o_excl,在檔案鎖中比較常用。
11、新增 quick_exit() 函式作為第三種終止程式的方式。當 exit()失敗時可以做最少的清
嵌入式學習 day 3
1.linux 中顏色所代表的屬性 綠色檔案 可執行檔案 可執行程式 紅色檔案 壓縮檔案或者包檔案 藍色檔案 目錄 白色檔案 一般檔案 如文字檔案 淺藍色檔案 鏈結檔案 紅色 閃爍 表示鏈結的檔案有問題 黃色檔案 表示裝置檔案 2.檔案目錄的許可權以及修改許可權 首先了解各個許可權 rwx rwx ...
嵌入式學習Day3
1 vim編輯器 vim的三種模式 命令模式 vim開啟檔案,就是命令模式。插入模式 按a或i進入插入模式,按esc回到命令模式。底行模式 按 進入底行模式,或 此時按wq儲存退出。常用在命令模式下按shift zz儲存退出。命令模式下 1 x 刪除乙個字元,nx 刪除n格字元。2 dd 刪除 剪下...
嵌入式入門day3
嵌入式linux的開發工具 vim gcc gdb make vim 文字編輯器 學會使用和如何配置vim gcc 編輯器 學會製作動態庫和靜態庫,使用和區別 gdb 偵錯程式 設定斷點 單步執行 除錯記憶體錯誤 make 工程管理器 編寫makefile檔案 linux文字編輯器 vim 功能最強...