看來ANSI C 89是編寫跨平臺庫的最佳選擇,因爲許多平臺(Windows,Unix,Linux,Mac,Android等)都支持它。有沒有不支持ANSI C 89的平臺?
但是有沒有不支持ANSI C 89的平臺?
我不知道關於J2ME,iPhone等..
看來ANSI C 89是編寫跨平臺庫的最佳選擇,因爲許多平臺(Windows,Unix,Linux,Mac,Android等)都支持它。有沒有不支持ANSI C 89的平臺?
但是有沒有不支持ANSI C 89的平臺?
我不知道關於J2ME,iPhone等..
首先,ANSI C通常是指C89,所以C89是多餘的。
iOS支持ANSI C以及大多數平臺。 J2ME是一個Java平臺,默認情況下它根本不支持C.
主要平臺都支持ANSI C,但有一些嵌入式平臺不支持。我認爲你不應該擔心這些。
有任何代碼或數據不支持C. 如第「2.2.4.1翻譯限制」的授權the standard內存太少任何平臺:
執行應能翻譯和執行至少一個程序 包含的 下列限制每一個的至少一個實例:複合語句的
15個嵌套級別,迭代控制
結構和選擇控制結構條件包含的8個嵌套級別
12指針,數組和函數聲明(以任意組合)
修改算法,結構,聯合,或在聲明的不完全類型
嵌套在由括號的完整說明符內31說明符
32表達式嵌套在由括號中的充分表達
內...
- 127識別符與塊範圍在一個塊
聲明...
一個函數定義中的31個參數
個31參數在一個函數調用
...在字符串文字或寬字符串
509字符字面 (串聯後)
32767個字節中的對象(在僅託管環境)
...
- 單個結構或聯合中的127個成員
...嵌套結構或聯合定義的
- 15水平在一個
結構聲明列表
你可能會發現其他的要求,如果你閱讀標準與關注。
最後,如果有足夠的內存,即使是微弱的,否則平臺能夠支持C.它必須有額外的代碼來克服硬件限制(例如支持所需的類型,算術運算等)。