簡體   English   中英

有沒有不支持ANSI C 89的平台?

[英]Is there any platform that not supports ANSI C 89?

看起來ANSI C 89是編寫跨平台庫的最佳選擇,因為許多平台(Windows,Unix,Linux,Mac,Android等)都支持它。

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

我不確定J2ME,iPhone等等。

首先,ANSI C通常是指C89,因此C89是冗余的。

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

主要平台都支持ANSI C,但有一些嵌入式平台沒有。 我認為你不應該擔心這些問題。

任何代碼或數據內存太少的平台都不支持C.根據“2.2.4.1翻譯限制”一節中的標准規定:

該實現應能夠翻譯和執行至少一個包含以下每個限制的至少一個實例的程序:

  • 15個復合語句的嵌套級別,迭代控制
    結構和選擇控制結構

  • 8個嵌套級別的條件包含

  • 12個指針,數組和函數聲明符(以任意組合)
    修改算術,結構,聯合或不完整類型
    在聲明中

  • 31個聲明符由完整聲明符中的括號嵌套

  • 32個表達式由完整表達式中的括號嵌套

...

  • 在一個塊中聲明了塊標識符的127個標識符

...

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

  • 一個函數調用中有31個參數

...

  • 字符串文字或寬字符串文字中的509個字符(連接后)

  • 對象中的32767個字節(僅限托管環境中)

...

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

...

  • 單個中有15個級別的嵌套結構或聯合定義
    結構聲明列表

如果您仔細閱讀標准,您可能會找到其他要求。

最后,如果有足夠的內存,即使是一個弱的平台也可以支持C.它必須有額外的代碼來克服硬件限制(例如支持所需的類型,算術運算等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM