一致性
來自 cppreference.com
一致性具有三重定義
- 嚴格一致程式 - 僅使用定義良好的語言結構,即具有單一行為的結構。它不包括未指明、未定義或實現定義的行為,並且不超過任何最小實現限制。
- 一致程式 - 可被一致實現接受。
- 一致實現 -
- 一致的宿主實現應接受任何嚴格一致程式。
- 一致的獨立實現應接受任何嚴格一致程式,其中庫子句(子句 7)中指定特性的使用僅限於獨立標準庫標頭檔案(見下文)的內容。
- 一致實現可以有擴充套件(包括額外的庫函式),前提是它們不改變任何嚴格一致程式的行為。
目錄 |
[編輯] 解釋
標準沒有定義翻譯單元的任何最小實現限制。宿主環境具有作業系統;獨立環境則沒有。在宿主環境中執行的程式可以使用庫子句(子句 7)中描述的所有特性;在獨立環境中執行的程式可以使用子句 4 要求的庫特性子集。
[編輯] 獨立標準庫標頭檔案
獨立實現必須提供所有完全獨立標頭檔案中的所有標準庫特性。
某些標準庫標頭檔案是有條件獨立的。
某些標準庫標頭檔案是部分獨立的。
|
(自 C23 起) |
完全獨立標準庫標頭檔案 | |
<float.h> | 浮點型別限制 |
<iso646.h> (C95 起) | 備用運算子拼寫 |
<limits.h> | 整數類型範圍 |
<stdalign.h> (C11 起) | alignas 和 alignof 便利宏 |
<stdarg.h> | 可變引數 |
<stdbool.h> (C99 起) | 布林型別宏 |
<stddef.h> | 通用宏定義 |
<stdint.h> (C99 起) | 固定寬度整數型別 |
<stdnoreturn.h> (C11 起) | noreturn 便利宏 |
<stdbit.h> (C23 起) | 處理型別位元組和位表示的宏 |
有條件完全獨立標準庫標頭檔案 | |
<fenv.h> (C23 起) | 浮點環境 |
<math.h> (C23 起) | 通用數學函式 |
部分獨立標準庫標頭檔案 | |
<stdlib.h> (C23 起) | 通用工具:記憶體管理、程式工具、字串轉換、隨機數、演算法 |
<string.h> (C23 起) | 字串處理 |
[編輯] 參考
- C23 標準 (ISO/IEC 9899:2024)
- 4 一致性 (p: 9-10)
- C17 標準 (ISO/IEC 9899:2018)
- 4 一致性 (p: 4)
- C11 標準 (ISO/IEC 9899:2011)
- 4 一致性 (p: 8-9)
- C99 標準 (ISO/IEC 9899:1999)
- 4 一致性 (p: 7-8)
- C89/C90 標準 (ISO/IEC 9899:1990)
- 1.7 符合性
[編輯] 另見
C++ 文件 關於 獨立與宿主實現
|