Oracle® Developer Studio 12.5 发行版的新增功能

退出打印视图

更新时间: 2016 年 7 月
 
 

–xc99 标志移到 –std 标志

随着 C11 支持的引入,语言变种不再是 C89 和 C99 之间简单的二项选择,现在有了第三个选择:C11。

通过 Oracle Solaris Studio 12.3,选择是 C99 还是 C89 并由 –xc99 标志控制:

标志
语言变种
–xc99=all
C99 语言
–xc99=none
C89 语言

通过 Oracle Solaris Studio 12.4 和 Oracle Developer Studio 12.5 ,语言变种的选择(C89、C99 或 C11)应使用 –std 标志控制:

标志
语言变种
–std=c11
C11 语言
–std=c99
C99 语言
–std=c89
C89/C90 语言

以下是 –xc99 标志和 –std 标志之间的简单映射:

–xc99 标志
–std 标志
–xc99
–std=c99
–xc99=all
–std=c99
–xc99=all,lib
–std=c99
–xc99=all,no_lib
–std=c99 –xlang=c89
–xc99=none,lib
–std=c89 –xlang=c99
–xc99=none,no_lib
–std=c89
–xc99none
–std=c89

以下用于控制语言变种的选项在 Oracle Developer Studio C 编译器中已过时或很快就会过时:–Xc–Xa–Xt–xc99

  • –xc99:选择 ISO C99 或 C89 语言

  • –Xc:对使用非 ISO C 构造的程序发出错误和警告

  • –Xa:接受 ISO C 以及 C 语言的扩展

  • –Xt:接受 ISO C 以及 K&R C 兼容性扩展

  • –Xs:接受 K&R C

如果以前使用 –Xa,则应改用 –std 选项以及 –pedantic 选项。使用 –Xt–Xs 的传统代码需要转换为 ISO C 语言变种。

可使用 –xlang 选项控制与标准符合性相关的特定 libc 函数的行为。在 Oracle Solaris Studio 12.4 C 编译器中,缺省行为是 C11 语言构造和 C89 库行为。在此缺省模式中,___STDC_VERSION__ (199409L) 表示 C89 标准。

在 Oracle Developer Studio 12.5 C 编译器中,语言功能和库行为缺省为 C11 模式,__STDC_VERSION__ (201112L) 反映了 C11。

注意:在 Oracle Solaris Studio 12.3 中,此行为由子选项 –xc99=lib 控制。