JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:C 用户指南     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  C 编译器介绍

2.  特定于 C 编译器实现的信息

2.1 常量

2.1.1 整型常量

2.1.2 字符常量

2.2 链接程序作用域说明符

2.3 线程局部存储说明符

2.4 浮点,非标准模式

2.5 作为值的标签

2.6 long long 数据类型

2.6.1 输出 long long 数据类型

2.6.2 常见算术转换

2.7 switch 语句中的 case 范围

2.8 断言

2.9 支持的属性

2.10 警告和错误

2.11 Pragma

2.11.1 align

2.11.2 c99

2.11.3 does_not_read_global_data

2.11.4 does_not_return

2.11.5 does_not_write_global_data

2.11.6 dumpmacros

2.11.7 end_dumpmacros

2.11.8 error_messages

2.11.9 fini

2.11.10 hdrstop

2.11.11 ident

2.11.12 init

2.11.13 inline

2.11.14 int_to_unsigned

2.11.15 must_have_frame

2.11.16 nomemorydepend

2.11.17 no_side_effect

2.11.18 opt

2.11.19 pack

2.11.20 pipeloop

2.11.21 rarely_called

2.11.22 redefine_extname

2.11.23 returns_new_memory

2.11.24 unknown_control_flow

2.11.25 unroll

2.11.26 warn_missing_parameter_info

2.11.27 weak

2.12 预定义的名称

2.13 保留 errno 的值

2.14 扩展

2.14.1 _Restrict 关键字

2.14.2 _ _asm 关键字

2.14.3 __inline__inline__

2.14.4 __builtin_constant_p()

2.14.5 __FUNCTION____PRETTY_FUNCTION__

2.15 环境变量

2.15.1 PARALLEL

2.15.2 SUN_PROFDATA

2.15.3 SUN_PROFDATA_DIR

2.15.4 TMPDIR

2.16 如何指定 include 文件

2.16.1 使用 -I- 选项更改搜索算法

2.16.1.1 警告

2.17 在独立式环境中编译

2.18 对 Intel MMX 和扩展的 x86 平台内部函数的编译器支持

3.  并行化 C 代码

4.  lint 源代码检验器

5.  基于类型的别名分析

6.  转换为 ISO C

7.  转换应用程序以适用于 64 位环境

8.  cscope:交互检查 C 程序

A.  按功能分组的编译器选项

B.  C 编译器选项参考

C.  实现定义的 ISO/IEC C99 行为

D.  C99 的功能

E.  实现定义的 ISO/IEC C90 行为

F.  ISO C 数据表示法

G.  性能调节

H.  Oracle Solaris Studio C:K&R C 与 ISO C 之间的差异

索引

2.14 扩展

C 编译器针对 C 语言实现了许多扩展。

2.14.1 _Restrict 关键字

C 编译器支持 _Restrict 关键字,该关键字与 C99 标准中的 restrict 关键字等效。_Restrict 关键字可与 -xc99=none-xc99=all 一起使用,而 restrict 关键字只能与 -xc99=all 一起使用。

有关支持的 C99 特性的更多信息,请参见表 C-6

2.14.2 _ _asm 关键字

__asm 关键字(注意开头的两个下划线)asm 关键字的同义字。如果您使用 asm 而不是 __asm,并且在 -Xc 模式下编译,则编译器会发出警告。如果您在 – Xc 模式下使用 _ _asm,则编译器不会发出警告。_ _asm 语句采用以下形式:

__asm("string");

其中 string 是有效的汇编语言语句。

该语句将给定的汇编程序文本直接发送到汇编文件。在文件作用域(而不是函数作用域)声明的基本 asm 语句称为全局 asm 语句。其他编译器将其称为顶级 asm 语句。

全局 asm 语句以其指定顺序发出,保留相对于彼此的顺序,并保持相对于前后函数的位置。

在较高优化级别中,编译器可能会删除已确定不被引用的函数。由于编译器得出从全局汇编语言语句中引用了哪些函数的结果,因此可能会无意中删除这些函数。

请注意,那些提供模板及操作数规范的扩展 asm 语句不允许作为全局语句。__asm__asm__asm 关键字的同义字,可以互换使用。

指定特定于体系结构的指令时,可能需要指定正确的 -xarch 值以避免发生编译错误。

2.14.3 __inline__inline__

__inline__inline__inline 关键字的同义字(C 标准,第 6.4.1 节)

2.14.4 __builtin_constant_p()

__builtin_constant_p 是编译器内置函数。它接受一个数值参数,如果参数是一个编译时常量,则返回 1。返回值 0 意味着编译器无法确定参数是否是编译时常量。此内置函数的典型用法是在宏中用于手动编译时优化。

2.14.5 __FUNCTION____PRETTY_FUNCTION__

__FUNCTION____PRETTY_FUNCTION__ 是预定义标识符,这些标识符包含词法上封闭的函数的名称。它们在功能上等效于 c99 预定义标识符 __func__。在 Oracle Solaris 平台上,__FUNCTION____PRETTY_FUNCTION__-Xs-Xc 模式下不可用。