Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

C11 的功能

此附录讨论了 C 编译器当前支持的 ISO/IEC 9899:2011 C 编程语言标准的功能。

-std=c11 标志控制编译器识别 9899:2011 ISO/C 标准。有关 -std 标志语法的更多信息,请参见–std=value

C.1 关键字

  • _Alignas

  • _Alignof

  • _Noreturn

  • _Static_assert

  • _Thread_local

C.2 C11 支持的功能

  • _Alignas 说明符

  • _Alignof 运算符

  • _Noreturn

  • _Static_assert

  • _Thread_local 存储说明符

  • 允许 typedef 重新定义

  • 匿名 struct/union

  • 允许更新的 UCN 字符集

  • __STDC_ANALYZABLE__

  • __STDC_NO_ATOMICS__

  • __STDC_NO_THREADS__

C.2.1 _Alignas 说明符

功能:6.7.5 对齐说明符

_Alignas ( type-name )
_Alignas ( constant-expression )
  

_Alignas 说明符不能用于声明已使用寄存器存储类说明符声明的 typedef、位字段、函数、参数或对象。

常量表达式应计算为整型常量表达式。常量表达式必须计算为介于 1 和 128 之间且是 2 的幂的整型常量表达式。有效值包括 0、1、2、4、8、16、32、64 和 128。与要声明的对象或成员类型所需的对齐相比,该值必须计算为相同或更严格的对齐。

_Alignas (type-name) 与 _Alignas (_Alignof (type-name)) 等效。

值为 0 的对齐说明符不起作用。

有效的对齐是使用最严格的对齐说明符的对齐。

对于已使用对齐说明符声明的对象,在每次进行其他声明时都必须指定相同的对齐说明符或不指定任何对齐说明符。在声明相同对象的每个源文件中都必须指定该对象的对齐,否则不会定义行为。

C.2.2 _Alignof 运算符

功能:6.5.3.4 _Alignof 运算符

_Alignof ( type-name )

_Alignof 运算符会计算为一个整型常量,表示其操作数类型的对齐要求。不会计算操作数。_Alignof 运算符不能用于函数或不完全类型。

C.2.3 _Noreturn

功能:6.7.4 函数说明符 _Noreturn

放置 _Noreturn 说明符来声明从不返回的函数,例如:

_Noreturn void leave () {
    abort();
  }

C.2.4 _Static_assert

功能:6.7.10 静态断言

_Static_assert ( constant-expression , string-literal ) ;

C.2.5 通用字符名 (UCN)

根据 ISO/IEC 9899:2011 的附件 D,更新 UCN 中允许的字符集。有关被允许字符的完整列表,请参阅 ISO/IEC 9899:2011 附件 D。