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.18 对 Intel MMX 和扩展的 x86 平台内部函数的编译器支持

mmintrin.h 头文件中声明的原型支持 Intel MMX 内部函数,是为了实现兼容性而提供的。

特定头文件提供了附加扩展平台内部函数的原型,如下表所示。

表 2-5 MMX 和扩展的 x86 内部函数

x86 平台
头文件
SSE
mmintrin.h
SSE2
xmmintrin.h
SSE3
pmmintrin.h
SSSE3
tmmintrin.h
SSE4A
ammintrin.h
SSE4.1
smmintrin.h
SSE4.2
nmmintrin.h
AES 加密和 PCLMULQDQ
wmmintrin.h
AVX
immintrin.h

表中每个头文件在其前面都包括了原型。例如,在 SSE4.1 平台上,用户程序中的包含方 smmintrin.h 声明了支持 SSE4.1、SSSE3、SSE3、SSE2、SSE 和 MMX 平台的内部函数名称,因为 smmintrin.h 包含了 tmmintrin.h,而 tmmintrin.h 包含了 pmmintrin.h,并依次向下类推至 mmintrin.h

请注意,ammintrin.h 是由 AMD 发布的,未包含在任何 Intel 内部函数头文件中。ammintrin.h 包含了 pmmintrin.h,因此,通过将 ammintrin.h 包含在内,就可声明所有 AMD SSE4A 以及 Intel SSE3、SSE2、SSE 和 MMX 函数。

另外,单个 Oracle Solaris Studio 头文件 sunmedia_intrin.h 包含所有 Intel 头文件中的声明,但未包含 AMD 头文件 ammintrin.h

请注意,在主机平台(例如,SSE3)上部署的用于调用任何超集内部函数(例如,对于 AVX)的代码将不会加载到 Solaris 平台上,并且在 Linux 平台上会由于未定义的行为或不正确的结果而失败。对于调用这些特定于平台的内部函数的程序,请只在支持这些函数的平台上部署这类程序。

这些为系统头文件,应按下例所示显示在程序中:

#include <nmmintrin.h>

有关这些内部函数的详细信息,请参阅最新的 Intel C++ 编译器参考指南。