编辑“︁
ANSI C
”︁(章节)
跳转到导航
跳转到搜索
Template:Editnotice load/content
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==主要编译器的支持== ANSI C现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。任何''仅仅''使用标准C并且没有任何硬件依赖假设的代码实际上能保证在任何[[系统平台|平台]]上用遵循C标准的编译器编译成功。如果没有这种预防措施,多数程序只能在一种特定的平台或特定的编译器上编译,例如,使用非标准库,例如[[图形用户界面]]库,或者有关编译器或平台特定的特性例如数据类型的确切大小和[[字节序]]. === 选择编译 === 為了增加[[C程序設計語言 (書)|K&R]] C和ANSI C的相容性,<code>__STDC__</code>("standard c")巨集可以被用来将代码分割为ANSI和K&R部分。 <syntaxhighlight lang="c"> #if __STDC__ extern int getopt(int, char * const *, const char *); #else extern int getopt(); #endif </syntaxhighlight> 上面最好使用"<code>#if __STDC__</code>"而不是"<code>#ifdef __STDC__</code>",因为一些实现可能会把<code>__STDC__</code>设置为0来表示不遵循ANSI C。"<code>__STDC__</code>"能处理任何没有被巨集替换或者值为0的标示符。因而即使巨集"<code>__STDC__</code>"没有定义来表示不遵循ANSI C,"<code>__STDC__</code>"仍然能像显示的那样工作。 在上面的例子,一个原型中使用了ANSI实现兼容的函数声明,而另一个使用了过时的非原形声明。它们在C99和C90中依旧是ANSI兼容的,但并不被鼓励使用。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息