ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
在寬松 ANSI 模式 (--relaxed_ansi) 下進行編譯時,大多數 GCC 語言擴展都可在 TI 編譯器中使用。
表 5-5 中列出了 TI 編譯器支持的擴展,其基于 GNU 網站上的擴展列表。陰影行描述了不受支持的擴展。
| 擴展 | 說明 |
|---|---|
| 語句表達式 | 將語句和聲明放在表達式中(用于創建智能的“安全”宏命令) |
| 局部標簽 | 語句表達式的局部標簽 |
| 標簽作為值 | 指向標簽和計算得到的 goto 的指針 |
| 嵌套函數 | 就像在 Algol 和 Pascal 中一樣,函數的詞法范圍 |
| 構造調用 | 分派對另一個函數的調用 |
| 命名類型(1) | 為表達式類型指定名稱 |
| typeof 運算符 | typeof 指的是表達式類型 |
| 廣義左值 | 在左值中使用問號 (?)、逗號 (,) 和 cast |
| 條件語句 | 省略 ?: 表達式的中間操作數 |
| long long | Double long 字整數和 long long int 類型 |
| 十六進制浮點值 | 十六進制浮點常量 |
| 復數 | 復數的數據類型 |
| 零長度 | 零長度數組 |
| 可變參數宏命令 | 具有可變數量參數的宏命令 |
| 可變長度 | 在運行時計算長度的數組 |
| 空結構 | 無成員的結構 |
| 加下標 | 任何數組都可以加下標,即使它不是左值。 |
| 轉義換行符 | 轉義換行符的規則稍微寬松一些 |
| 多行字符串(1) | 帶有嵌入換行符的字符串文字 |
| 指針算術 | 空指針和函數指針的算術 |
| 初始化程序 | 非常量初始化程序 |
| 復合字面量 | 復合字面量將結構體、聯合體或數組作為值 |
| 指定的初始化程序 | 初始化程序的標簽元素 |
| 強制轉換為 union | 從 union 的任何成員強制轉換為 union 類型 |
| Case(強制轉換)范圍 | “Case 1 ...9”等 |
| 混合聲明 | 混合聲明和代碼 |
| 函數屬性 | 聲明函數沒有任何副作用,或者其永遠不會返回 |
| 屬性語法 | 屬性的正式語法 |
| 函數原型 | 原型聲明和舊式定義 |
| C++ 注釋 | 系統會識別 C++ 注釋。 |
| 美元符號 | 標識符中允許使用美元符號。 |
| 字符轉義 | 字符 ESC 表示為 \e |
| 變量屬性 | 指定變量的屬性 |
| 類型屬性 | 指定類型的屬性 |
| 對齊 | 查詢類型或變量的對齊情況 |
| 內聯 | 定義內聯函數(和宏命令一樣快) |
| 匯編標簽 | 指定要用于 C 符號的匯編器名稱 |
| 擴展的 asm | 帶有 C 操作數的匯編器指令 |
| 約束條件 | asm 操作數的約束條件 |
| 包裝器頭文件 | 包裝器頭文件可以使用 #include_next 包含另一個版本的頭文件 |
| 替代關鍵字 | 頭文件可以使用 __const__、__asm__ 等 |
| 顯式寄存器變量 | 定義駐留在指定寄存器中的變量 |
| 不完整的枚舉類型 | 定義枚舉標簽而不指定其可能的值 |
| 函數名稱 | 作為當前函數名稱的可打印字符串 |
| 返回地址 | 獲取函數的返回地址或幀地址(有限支持) |
| 其他內置 | 其他內置函數(請參見節 5.17.6) |
| 矢量擴展 | 通過內置函數使用矢量指令 |
| 目標內置 | 專用于特定目標的內置函數 |
| Pragma | GCC 接受的 pragma |
| 未命名字段 | 結構體/聯合體中的未命名結構體/聯合體字段 |
| 線程本地 | 每線程變量 |
| 二進制常量 | 使用“0b”前綴的二進制常量。 |