C 标准要求,符合规范的实现方案应提供有关编译器如何处理实现定义行为实例的文档。
TI 编译器正式支持独立的环境。C 标准不需要一个独立的环境来提供 C 语言的所有特性;特别是,库不需要是完整的。但是,TI 编译器力求提供适用于托管环境的大多数特性。
下述列表中的章节编号对应于 C99 标准附录 J 中的章节编号。每项末尾括号中的数字是 C99 标准中讨论该主题的章节编号。此列表中省略了 C99 标准附录 J 中列出的某些项。
J.3.1 转换
- 编译器和相关工具以几种不同的格式发出诊断消息。诊断消息被发送到 stderr;stderr 上的任何文本都可以被认为是诊断信息。如果存在任何错误,该工具将退出并显示指示失败(非零)的退出状态。(3.10,5.1.1.3)
- 保存非空的非空的空白字符序列,这些字符在转换阶段 3 中不会被单个空格字符替换。(5.1.1.2)
J.3.2 环境
- 编译器在标识符、字符串文字和字符常量中不支持多字节字符。没有从多字节字符到源字符集的映射。但是,编译器在注释中接受多字节字符。有关详细信息,请参阅节 7.4 (5.1.1.2)
- 程序启动时调用的函数的名称为“main”。(5.1.2.1)
- 程序终止不会影响环境;无法将退出代码返回给环境。正如我们所知,默认情况下,当执行到达特殊的 C$$EXIT 标签时,程序就会停止。(5.1.2.1)
- 在宽松 ANSI 模式下,编译器接受“void main(void)”和“void main(int argc, char *argv[])”作为 main 的备用定义。在严格 ANSI 模式下,备用定义会被拒绝。(5.1.2.2.1)
- 如果在链接时使用 --args 选项为程序参数提供了空间,并且程序在可以填充 .args 段(例如 CCS)的系统下运行,则 argv[0] 将包含可执行文件的文件名,argv [1] 到 argv[argc-1] 将包含程序的命令行参数,而 argv[argc] 将为 NULL。在其他情况下,argv 和 argc 的值是未定义的。(5.1.2.2.1)
- 交互式设备包括 stdin、stdout 和 stderr(当连接到接受 CIO 请求的系统时)。交互式设备不限