1.3.2. 语言遵从性

编译器有几种模式,在这些模式中,有的模式要求必须遵从源语言,有的模式则不做硬性规定:

Strict 模式

在 strict 模式下,编译器将强制遵从与源语言相关的语言标准。 例如,编译严格 C90 时若使用 // 样式的注释,将导致错误。

若要在 strict 模式下进行编译,请使用命令行选项 --strict

GNU 模式

在 GNU 模式下,相关源语言的所有 GNU 编译器扩展都可用。 例如,在 GNU 模式中:

  • 源语言是 C90、C99 或非严格 C++ 中的任何一种时,可以在 switch 语句中使用 Case Range

  • 源语言是 C90 或非严格 C++ 时,可以使用 C99 样式的指定初始值设定项。

若要在 GNU 模式下进行编译,请使用编译器选项 --gnu

Note

在非 strict 模式下时还可以使用某些 GNU 扩展。

示例

以下示例说明如何将源语言模式与语言遵从模式结合使用:

  • 使用命令行选项 --strict 编译 .cpp 文件时将编译标准 C++

  • 使用命令行选项 --gnu 编译 C 源文件将编译 GNU 模式 C90

  • 使用命令行选项 --strict--gnu 编译 .c 文件会出错

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential