2012-02-13 42 views
0

看來ANSI C 89是編寫跨平臺庫的最佳選擇,因爲許多平臺(Windows,Unix,Linux,Mac,Android等)都支持它。有沒有不支持ANSI C 89的平臺?

但是有沒有不支持ANSI C 89的平臺?

我不知道關於J2ME,iPhone等..

回答

1

首先,ANSI C通常是指C89,所以C89是多餘的。

iOS支持ANSI C以及大多數平臺。 J2ME是一個Java平臺,默認情況下它根本不支持C.

主要平臺都支持ANSI C,但有一些嵌入式平臺不支持。我認爲你不應該擔心這些。

1

有任何代碼或數據不支持C. 如第「2.2.4.1翻譯限制」的授權the standard內存太少任何平臺:

執行應能翻譯和執行至少一個程序 包含的 下列限制每一個的至少一個實例:複合語句的

  • 15個嵌套級別,迭代控制
    結構和選擇控制結構條件包含的

  • 8個嵌套級別

  • 12指針,數組和函數聲明(以任意組合)
    修改算法,結構,聯合,或在聲明的不完全類型
    嵌套在由括號的完整說明符內

  • 31說明符

  • 32表達式嵌套在由括號中的充分表達

內...

  • 127識別符與塊範圍在一個塊

聲明...

  • 一個函數定義中的31個參數

  • 31參數在一個函數調用

...在字符串文字或寬字符串

  • 509字符字面 (串聯後)

  • 32767個字節中的對象(在僅託管環境)

...

  • 單個結構或聯合中的127個成員

...嵌套結構或聯合定義的

  • 15水平在一個
    結構聲明列表

你可能會發現其他的要求,如果你閱讀標準與關注。

最後,如果有足夠的內存,即使是微弱的,否則平臺能夠支持C.它必須有額外的代碼來克服硬件限制(例如支持所需的類型,算術運算等)。