1.Normal ANSI模式(默认) ●编译器默认的模式是Normal ANSI模式, 在此模式下: ◆大多数违反ANSI标准的语句都报错 ◆违反严格ANSI标准的语句给出警告 ◆语言扩展的语句都是允许的 29
⚫ 编译器默认的模式是Normal ANSI模式, 在此模式下: ◆大多数违反ANSI标准的语句都报错 ◆违反严格ANSI标准的语句给出警告 ◆语言扩展的语句都是允许的 1. Normal ANSI模式(默认) 29
2.兼容K&RC(-pk选项) 主要用来简化用C55 x ANSI C编译器对以前C 标准代码的编译过程. 编译器有一个K&R(-pk)选项,用来改变语 言的段规则来兼容老版本的代码 总体说来,-pk选项使编译要求比ANSI C更 加容易达到. 同时,该选项支持ANSI C语言的新功能,如 函数原型、枚举、初始化和预处理器结构 30
2.兼容K&R C(-pk选项) ⚫ 主要用来简化用C55x ANSI C编译器对以前C 标准代码的编译过程. ⚫ 编译器有一个K&R (–pk)选项,用来改变语 言的段规则来兼容老版本的代码. ⚫ 总体说来,–pk选项使编译要求比ANSI C更 加容易达到. ⚫ 同时,该选项支持ANSI C语言的新功能,如 函数原型、枚举、初始化和预处理器结构. 30
3.严格ANSI模式(-ps选项) Strict ISO Mode ●使用-ps选项可以使编译器工作在严格 ANSI模式,这种模式下: ◆会在违反ANSI规则的时候报错,语言扩 展因违反严格ANSI规则,所以不可用。 ◆这些语言扩展的例子:inline和asm关键 字不可用 31
3.严格ANSI模式 (–ps选项) ⚫ 使用-ps选项可以使编译器工作在严格 ANSI模式,这种模式下: ◆会在违反ANSI规则的时候报错,语言扩 展因违反严格ANSI规则,所以不可用。 ◆这些语言扩展的例子: inline和asm关键 字不可用 31 Strict ISO Mode
4.宽松ANSI模式(-pr选项) Relaxed ISO Mode ●使用-pr选项可以使编译器工作在宽松ANSI模 式中: ◆违反严格的ANSI标准的情况下不发送警告消 息(普通ANSI模式中会发送),也不发送错误消 息(严格ANSI模式中会发送): ◆编译接受对ANSI C标准的扩展,甚至是和 ANSI C冲突的时候。 32
4. 宽松ANSI模式(–pr选项) ⚫ 使用-pr选项可以使编译器工作在宽松ANSI模 式中: ◆ 违反严格的ANSI标准的情况下不发送警告消 息(普通ANSI模式中会发送), 也不发送错误消 息(严格ANSI模式中会发送); ◆ 编译接受对ANSI C标准的扩展,甚至是和 ANSI C冲突的时候。 32 Relaxed ISO Mode
6.2.7存储器模式 C编译器将存储器当作一个由代码子模块和数据子 模块组成的线性模块。 。每个由C程序生成的代码子模块或数据子模块被放 到各自的连续存储空间中。 ●编译器认为目标存储器的全部24位地址都有效。 编译器支持两种存储器模型: 0 ◆小存储模式和大存储器模式。 ◆两种存储模式的数据在存储器中的放置和访问不同。 33
6.2.7存储器模式 ⚫ C编译器将存储器当作一个由代码子模块和数据子 模块组成的线性模块。 ⚫ 每个由C程序生成的代码子模块或数据子模块被放 到各自的连续存储空间中。 ⚫ 编译器认为目标存储器的全部24位地址都有效。 ⚫ 编译器支持两种存储器模型: ◆小存储模式和大存储器模式。 ◆两种存储模式的数据在存储器中的放置和访问不同。 33