C语言495个问题之第11章《ANSI/ISO 标准C》
发布网友
发布时间:2024-10-24 17:26
我来回答
共1个回答
热心网友
时间:2024-10-28 23:54
本文翻译自英文C–FAQ,版权归属于朱群英和孙云。该内容可用于个人用途,但未经许可不得出版。
了解详情可参阅以下链接中的问题:
11.1 什么是 ANSI C 标准?1983年起,ANSI组织着手标准化C语言,最终形成 ANSX3.159-19,后被接受为国际标准ISO/IEC 99:1990。标准包括C语言实践的标准化,增加C++内容,支持多国字符集,并规定C运行时库。
11.2 如何获取标准副本?购买电子版或通过相关链接查找印刷版,或联系ISO获取。
11.3 更新信息从哪里获取?可以在lysator.liu.se/c/index.html、dkuug.dk/JTC1/SC22/WG14和dmk.com找到相关信息。
11.4 遇到类型不匹配警告?旧式C编译器的兼容性问题和解决方案见问题11.4。
11.5 旧式与新型函数语法能否混用?可以,但需小心,现代做法是统一使用原型声明,参见问题11.4。
11.6 结构类型声明的警告?确保在原型声明之前提供结构声明,以保持作用域一致性。
11.7 初始化数组维度的困惑?const修饰符的含义及使用方法在问题11.7有详细说明。
11.8 字符串常量与字符数组的讨论见问题11.8和11.13。
11.9 指针声明的区别?“const char *p”与“char * const p”的解释见问题11.9。
11.10 参数传递与const char **的疑惑?关于类型匹配的规则见问题11.10。
11.11 main()声明详解,参见11.12至11.16。
11.12 main()是否可声明为void?main()必须返回int,参见11.12的详细解释。
11.13 envp参数的用途和非标准扩展见问题11.13。
11.14 关于void main()的误解见问题11.14,标准规定明确。
11.15 为何某些系统不支持void main()?特定编译器的兼容性问题见问题11.15。
11.16 书籍中的错误示例见问题11.16,void main()不建议使用。
11.17 exit()与return等效性讨论见问题11.17,标准与兼容性差异。
11.18 字符串化宏值的方法见问题11.18,使用#操作符的注意事项。
11.19 预处理警告含义及处理见问题11.19,关于宏替换和字符串常量的扩展。
11.20 #ifdef的代码语法问题见问题11.20,预处理符号的规则。
11.21 #pragma的作用见问题11.21,编程控制和扩展的工具。
11.22 #pragma once的讨论见问题11.22,关于头文件自我识别的扩展。
11.23 数组初始化的解释见问题11.23,注意数组字符数组的区别。
11.24 void*指针运算见问题11.24,关于类型转换的提示。
11.25 memcpy()与memmove()的区别见问题11.25,内存操作的保证。
11.26 malloc(0)的使用见问题11.26,内存分配的实现依赖性。
11.27 外部标识符见问题11.27,ANSI标准对标识符的规定。
11.28 旧式C语法错误见问题11.28,可能遇到的编译器兼容性问题。
11.29 ANSI库函数未定义的原因见问题11.29,头文件和库的安装问题。
11.30 工具转换问题见问题11.30,原型转换工具的推荐和注意事项。
11.31 Frobozz Magic C编译器问题见问题11.31,非标准扩展的考虑。
11.32 语言行为类型的区别见问题11.32,实现定义、未明确和无定义的定义。
11.33 程序合法性的含义见问题11.33,程序符合性的不同层次。
11.34 ANSI标准的未定义部分见问题11.34,语言灵活性与标准目的。
11.35 依赖实现定义的行为见问题11.35,编译器行为的不确定性。