2012-02-13 37 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.它必须有额外的代码来克服硬件限制(例如支持所需的类型,算术运算等)。