oracle home
Oracle
®
Solaris Studio 12.4:C 用户指南
退出打印视图
Search Term
搜索范围:
本文档
整个文档库
» ...
Documentation Home
»
Oracle Solaris Studio 12.4 Information Library ...
»
Oracle
®
Solaris Studio 12.4:C 用户指南
»
转换应用程序以适用于 64 位环境
»
转换为 LP64 数据类型模型
更新时间: 2014 年 12 月
Oracle
®
Solaris Studio 12.4:C 用户指南
文档信息
使用本文档
产品文档库
获取 Oracle 支持
反馈
第 1 章 C 编译器介绍
1.1 C 版本 5.13 Oracle Solaris Studio 12.4 发行版的新增功能
1.2 x86 特殊注意事项
1.3 二进制兼容性验证
1.4 针对 64 位平台进行编译
1.5 标准符合性
1.6 C 自述文件
1.7 手册页
1.8 编译器的组织结构
1.9 与 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.9.1 __has_attribute 函数式宏
2.10 警告和错误
2.11 Pragma
2.11.1 对齐
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.14.6 untyped _Complex
2.14.7 __alignof__
2.15 环境变量
2.15.1 SUN_PROFDATA
2.15.2 SUN_PROFDATA_DIR
2.15.3 TMPDIR
2.16 如何指定 include 文件
2.16.1 使用 -I- 选项更改搜索算法
2.16.1.1 警告
2.17 在独立式环境中编译
2.18 对 Intel MMX 和扩展的 x86 平台内部函数的编译器支持
2.19 针对 SPARC64X 和 SPARC64X+ 平台内部函数的编译器支持
2.19.1 SIMD 内部函数
2.19.1.1 类型和运算
2.19.1.2 对应用程序二进制接口的扩展
2.19.1.3 内部函数
2.19.2 十进制浮点内部函数
2.19.2.1 类型和运算
2.19.2.2 宏和 pragma
2.19.2.3 内部函数
第 3 章 并行化 C 代码
3.1 使用 OpenMP 并行化
3.2 自动并行化
3.2.1 数据依赖性和干扰
3.2.2 私有标量和私有数组
3.2.3 返回存储
3.2.4 约简变量
3.2.5 循环变换
3.2.5.1 循环分布
3.2.5.2 循环合并
3.2.5.3 循环交换
3.2.6 别名和并行化
3.2.6.1 数组引用和指针引用
3.2.6.2 受限指针
3.3 环境变量
3.4 并行执行模型
3.5 加速
3.5.1 Amdahl 定律
3.5.1.1 开销
3.5.1.2 Gustafson 定律
3.6 内存屏障内部函数
第 4 章 lint 源代码检验器
4.1 基本和增强 lint 模式
4.2 使用 lint
4.3 lint 命令行选项
4.3.1 -#
4.3.2 -###
4.3.3 -a
4.3.4 -b
4.3.5 -C filename
4.3.6 -c
4.3.7 -dirout=dir
4.3.8 -err=warn
4.3.9 -errchk=l(, l)
4.3.10 -errfmt=f
4.3.11 -errhdr=h
4.3.12 -erroff=tag(, tag)
4.3.13 -errsecurity=level
4.3.14 -errtags=a
4.3.15 -errwarn=t
4.3.16 -F
4.3.17 -fd
4.3.18 -flagsrc=file
4.3.19 -h
4.3.20 -Idir
4.3.21 -k
4.3.22 -Ldir
4.3.23 -lx
4.3.24 -m
4.3.25 m32|m64
4.3.26 -Ncheck=c
4.3.27 -Nlevel=n
4.3.27.1 -Nlevel=1
4.3.27.2 -Nlevel=2
4.3.27.3 -Nlevel=3
4.3.27.4 -Nlevel=4
4.3.28 -n
4.3.29 -ox
4.3.30 -p
4.3.31 -Rfile
4.3.32 -s
4.3.33 -u
4.3.34 -V
4.3.35 -v
4.3.36 -Wfile
4.3.37 -XCC=a
4.3.38 -Xalias_level[=l]
4.3.39 -Xarch=amd64
4.3.40 -Xarch=v9
4.3.41 -Xc99[=o]
4.3.42 -Xkeeptmp=a
4.3.43 -Xtemp=dir
4.3.44 -Xtime=a
4.3.45 -Xtransition=a
4.3.46 -Xustr={ascii_utf16_ushort|no}
4.3.47 -x
4.3.48 -y
4.4 lint 消息
4.4.1 用于禁止消息的选项
4.4.2 lint 消息格式
4.5 lint 指令
4.5.1 预定义值
4.5.2 指令
4.6 lint 参考和示例
4.6.1 由 lint 执行的诊断
4.6.1.1 一致性检查
4.6.1.2 可移植性检查
4.6.1.3 可疑的构造
4.6.2 lint 库
4.6.3 lint 过滤器
第 5 章 基于类型的别名分析
5.1 介绍基于类型的分析
5.2 使用 Pragma 以便更好地控制
5.2.1 #pragma alias_level level (list)
5.2.1.1 #pragma alias (type, type [, type]…)
5.2.1.2 #pragma alias (pointer, pointer [, pointer]…)
5.2.1.3 #pragma may_point_to (pointer, variable [, variable]…)
5.2.1.4 #pragma noalias (type, type [, type]…)
5.2.1.5 #pragma noalias (pointer, pointer [, pointer]…)
5.2.1.6 #pragma may_not_point_to (pointer, variable [, variable]…)
5.2.1.7 #pragma ivdep
5.3 使用 lint 进行检查
5.3.1 标量指针向结构指针的强制类型转换
5.3.2 空指针向结构指针的强制类型转换
5.3.3 结构字段向结构指针的强制类型转换
5.3.4 需要显式别名
5.4 内存引用约束的示例
5.4.1 示例:别名级别
5.4.2 示例:使用不同的别名级别编译
5.4.3 示例:内部指针
5.4.4 示例:Struct 字段
5.4.5 示例:联合
5.4.6 示例:结构的结构
5.4.7 示例:使用 Pragma
第 6 章 转换为 ISO C
6.1 新式函数原型
6.1.1 编写新代码
6.1.2 更新现有代码
6.1.3 混合使用的注意事项
6.2 带有可变参数的函数
6.3 提升:无符号保留与值保留
6.3.1 一些背景历史
6.3.2 编译行为
6.3.3 示例:强制类型转换的使用
6.3.4 示例:相同的结果,不发出警告
6.3.5 整数常量
6.3.6 示例:整数常量
6.4 标记化和预处理
6.4.1 ISO C 转换阶段
6.4.2 旧 C 转换阶段
6.4.3 逻辑源代码行
6.4.4 宏替换
6.4.5 使用字符串
6.4.6 标记粘贴
6.5 const 和 volatile
6.5.1 仅适用于 lvalue 的类型
6.5.2 派生类型中的类型限定符
6.5.3 const 意味着 readonly
6.5.4 const 用法示例
6.5.5 volatile 用法示例
6.6 多字节字符和宽字符
6.6.1 亚洲语言需要多字节字符
6.6.2 编码变化
6.6.3 宽字符
6.6.4 C 语言特征
6.7 标准头文件和保留名称
6.7.1 标准头文件
6.7.2 保留供实现使用的名称
6.7.3 保留供扩展使用的名称
6.7.4 可安全使用的名称
6.8 国际化
6.8.1 语言环境
6.8.2 setlocale() 函数
6.8.3 更改的函数
6.8.4 新函数
6.9 表达式中的分组和求值
6.9.1 表达式定义
6.9.2 K&R C 重新整理许可证
6.9.3 ISO C 规则
6.9.4 括号用法
6.9.5 As If 规则
6.10 不完全类型
6.10.1 类型
6.10.2 完成不完全类型
6.10.3 声明
6.10.4 表达式
6.10.5 使用原因
6.10.6 示例:不完全类型
6.11 兼容类型和复合类型
6.11.1 多个声明
6.11.2 分别编译兼容性
6.11.3 单次编译兼容性
6.11.4 兼容指针类型
6.11.5 兼容数组类型
6.11.6 兼容函数类型
6.11.7 特殊情况
6.11.8 复合类型
第 7 章 转换应用程序以适用于 64 位环境
7.1 数据模型差异概述
7.2 实现单一源代码
7.2.1 派生类型
7.2.1.1 <sys/types.h>
7.2.1.2 <inttypes.h>
定宽整型
诸如 unintptr_t 的有用类型
常量宏
限制
格式字符串宏
7.2.2 使用 lint 进行检查
7.3 转换为 LP64 数据类型模型
7.3.1 整型和指针长度更改
7.3.2 整型和长型长度更改
7.3.3 符号扩展
7.3.4 指针运算而不是整数
7.3.5 结构
7.3.6 联合
7.3.7 类型常量
7.3.8 注意隐式声明
7.3.9 sizeof( ) 是无符号 long
7.3.10 使用强制类型转换显示您的意图
7.3.11 检查格式字符串转换操作
7.4 其他转换注意事项
7.4.1 注意:长度增长的派生类型
7.4.2 检查更改的副作用
7.4.3 检查直接使用 long 是否仍有意义
7.4.4 对显式 32 位与 64 位原型使用 #ifdef
7.4.5 调用转换更改
7.4.6 算法更改
7.5 入门指导核对表
第 8 章 cscope:交互检查 C 程序
8.1 cscope 进程
8.2 基本用法
8.2.1 步骤 1:设置环境
8.2.2 步骤 2:调用 cscope 程序
8.2.3 步骤 3:查找代码
8.2.4 步骤 4:编辑代码
8.2.5 命令行选项
8.2.6 查看路径
8.2.7 cscope 和编辑器调用堆栈
8.2.8 示例
8.2.8.1 将常量更改为预处理程序符号
8.2.8.2 向函数增加参数
8.2.8.3 更改变量的值
8.2.9 编辑器的命令行语法
8.3 未知终端类型错误
附录 A 按功能分组的编译器选项
A.1 按功能汇总的选项
A.1.1 优化和性能选项
A.1.2 编译时选项和链接时选项
A.1.3 数据对齐选项
A.1.4 数值和浮点选项
A.1.5 并行化选项
A.1.6 源代码选项
A.1.7 编译的代码选项
A.1.8 编译模式选项
A.1.9 诊断选项
A.1.10 调试选项
A.1.11 链接选项和库选项
A.1.12 目标平台选项
A.1.13 x86 特定选项
A.1.14 已过时选项
附录 B C 编译器选项参考
B.1 选项语法
B.2 cc 选项
B.2.1 -#
B.2.2 -###
B.2.3 Aname[(tokens)]
B.2.4 -ansi
B.2.5 -B[static|dynamic]
B.2.6 -C
B.2.7 -c
B.2.8 -Dname[(arg[,arg])][=expansion]
B.2.9 -d[y|n]
B.2.10 -dalign
B.2.11 -E
B.2.12 -errfmt[=[no%]error]
B.2.13 -errhdr[=h]
B.2.14 -erroff[=t]
B.2.15 -errshort[=i]
B.2.16 -errtags[=a]
B.2.17 -errwarn[=t]
B.2.18 -fast
B.2.19 -fd
B.2.20 -features=[v]
B.2.20.1 —features=typeof 示例
B.2.21 -flags
B.2.22 -flteval[={any|2}]
B.2.23 fma[={none|fused}]
B.2.24 -fnonstd
B.2.25 -fns[={no|yes}]
B.2.26 -fopenmp
B.2.27 -fPIC
B.2.28 -fpic
B.2.29 -fprecision=p
B.2.30 -fround=r
B.2.31 -fsimple[=n]
B.2.32 -fsingle
B.2.33 -fstore
B.2.34 -ftrap=t[,t...]
B.2.35 -G
B.2.36 -g
B.2.37 -g[n]
B.2.38 -H
B.2.39 -h name
B.2.40 -I[-|dir]
B.2.41 -i
B.2.42 include filename
B.2.43 -KPIC
B.2.44 -Kpic
B.2.45 -keeptmp
B.2.46 -Ldir
B.2.47 -lname
B.2.48 -library=sunperf
B.2.49 m32|m64
B.2.50 -mc
B.2.51 -misalign
B.2.52 -misalign2
B.2.53 -mr[,string]
B.2.54 -mt[={yes|no}]
B.2.55 -native
B.2.56 -nofstore
B.2.57 -O
B.2.58 -o filename
B.2.59 -P
B.2.60 -p
B.2.61 –pedantic{=[yes|no]}
B.2.62 –preserve_argvalues[=simple|none|complete]
B.2.63 –Qoption phase option[,option..]
B.2.64 -Q[y|n]
B.2.65 -qp
B.2.66 -Rdir[:dir]
B.2.67 -S
B.2.68 -s
B.2.69 -staticlib=[no%]sunperf
B.2.70 –std=value
B.2.71 –temp=path
B.2.71.1 另请参见
B.2.72 -traceback[={%none|common|signals_list}]
B.2.73 -Uname
B.2.74 -V
B.2.75 -v
B.2.76 -Wc,arg
B.2.77 -w
B.2.78 -X[c|a|t|s]
B.2.79 -x386
B.2.80 -x486
B.2.81 -Xlinker arg
B.2.82 -xaddr32[=yes|no]
B.2.83 -xalias_level[=l]
B.2.84 -xanalyze={code|%none}
B.2.85 xannotate[=yes|no]
B.2.86 –xarch=isa
B.2.86.1 用于 SPARC 和 x86 的 -xarch 标志
B.2.86.2 用于 SPARC 的 -xarch 标志
B.2.86.3 用于 x86 的 -xarch 标志
B.2.86.4 交互
B.2.86.5 警告
B.2.87 -xautopar
B.2.88 -xbinopt={prepare|off}
B.2.89 -xbuiltin[=(%all|%default|%none)]
B.2.90 -xCC
B.2.91 -xc99[=o]
B.2.92 -xcache[=c]
B.2.93 –xcg[89|92]
B.2.94 -xchar[=o]
B.2.95 -xchar_byte_order[=o]
B.2.96 -xcheck[=o[,o]]
B.2.96.1 -xcheck=init_local 的初始化值
基本类型
初始化结构、联合和数组
B.2.97 -xchip[=c]
B.2.98 -xcode[=v]
B.2.99 -xcrossfile
B.2.100 -xcsi
B.2.101 -xdebugformat=[stabs|dwarf]
B.2.102 -xdebuginfo=a[,a...]
B.2.103 -xdepend=[yes|no]
B.2.104 -xdryrun
B.2.105 -xdumpmacros[=value[,value...]]
B.2.106 -xe
B.2.107 xF[=v[,v...]]
B.2.107.1 值
B.2.108 -xglobalize[={yes|no}]
B.2.108.1 交互
B.2.109 -xhelp=flags
B.2.110 -xhwcprof
B.2.111 -xinline=list
B.2.112 xinline_param=a[,a[,a]...]
B.2.113 xinline_report[=n]
B.2.114 xinstrument=[no%]datarace
B.2.115 -xipo[=a]
B.2.115.1 -xipo 示例
B.2.115.2 何时不使用 -xipo=2 过程间分析
B.2.116 -xipo_archive=[a]
B.2.117 -xipo_build=[yes|no]
B.2.117.1 -xipo_build 示例
B.2.118 -xivdep[=p]
B.2.119 -xjobs{=n|auto}
B.2.119.1 -xjobs 示例
B.2.120 -xkeep_unref[={[no%]funcs,[no%]vars}]
B.2.121 -xkeepframe[=[%all,%none,name,no%name]]
B.2.122 -xlang=language
B.2.123 -xldscope={v}
B.2.124 -xlibmieee
B.2.125 -xlibmil
B.2.126 -xlibmopt
B.2.127 -xlic_lib=sunperf
B.2.128 -xlicinfo
B.2.129 -xlinkopt[=level]
B.2.130 -xloopinfo
B.2.131 -xM
B.2.132 -xM1
B.2.133 -xMD
B.2.134 -xMF filename
B.2.135 -xMMD
B.2.136 -xMerge
B.2.137 -xmaxopt[=v]
B.2.138 -xmemalign=ab
B.2.139 -xmodel=[a]
B.2.140 -xnolib
B.2.141 -xnolibmil
B.2.142 -xnolibmopt
B.2.143 xnorunpath
B.2.144 -xO[1|2|3|4|5]
B.2.144.1 SPARC 优化
B.2.144.2 x86 优化级别
B.2.145 -xopenmp[={parallel|noopt|none}]
B.2.146 -xP
B.2.147 -xpagesize=n
B.2.148 -xpagesize_heap=n
B.2.149 -xpagesize_stack=n
B.2.150 -xpatchpadding[={fix|patch|size}]
B.2.151 -xpch=v
B.2.151.1 自动创建预编译头文件
B.2.151.2 手动创建预编译头文件
B.2.151.3 编译器如何处理现有的预编译头文件
B.2.151.4 指示编译器使用特定的预编译头文件
B.2.151.5 活前缀
B.2.151.6 浏览头文件以查找问题
B.2.151.7 预编译头文件高速缓存
B.2.151.8 忠告
B.2.151.9 预编译头文件依赖性和 make 文件
B.2.152 -xpchstop=[file|<include>]
B.2.153 xpec[={yes|no}]
B.2.154 -xpentium
B.2.155 -xpg
B.2.156 -xprefetch[=val[,val]]
B.2.156.1 预取延迟比率 (SPARC)
B.2.157 -xprefetch_auto_type=a
B.2.158 -xprefetch_level=l
B.2.159 -xprevise={yes|no}
B.2.160 –xprofile=p
B.2.161 -xprofile_ircache[=path]
B.2.162 -xprofile_pathmap
B.2.163 -xreduction
B.2.164 -xregs=r[,r…]
B.2.165 -xrestrict[=f]
B.2.166 –xs[={yes|no}]
B.2.167 -xsafe=mem
B.2.168 -xsegment_align=n
B.2.169 -xsfpconst
B.2.170 -xspace
B.2.171 -xstrconst
B.2.172 -xtarget=t
B.2.172.1 xtarget 值(SPARC 平台)
B.2.172.2 xtarget 值(x86 平台)
B.2.173 -xtemp=path
B.2.174 -xthreadvar[=o]
B.2.175 -xthroughput[={yes|no}]
B.2.176 -xtime
B.2.177 -xtransition
B.2.178 -xtrigraphs[={yes|no}]
B.2.179 -xunboundsym={yes|no}
B.2.180 -xunroll=n
B.2.181 -xustr={ascii_utf16_ushort|no}
B.2.182 -xvector[=a]
B.2.183 -xvis
B.2.184 -xvpara
B.2.185 -Yc, dir
B.2.186 -YA, dir
B.2.187 -YI, dir
B.2.188 -YP, dir
B.2.189 -YS, dir
B.2.190 -Zll
B.3 传递给链接程序的选项
B.4 用户提供的缺省选项文件
附录 C C11 的功能
C.1 关键字
C.2 C11 支持的功能
C.2.1 _Alignas 说明符
C.2.2 _Alignof 运算符
C.2.3 _Noreturn
C.2.4 _Static_assert
C.2.5 通用字符名 (UCN)
附录 D C99 的功能
D.1 讨论和示例
D.1.1 浮点计算器的精度
D.1.2 C99 关键字
D.1.2.1 使用 restrict 关键字
D.1.3 __func__ 支持
D.1.4 通用字符名 (UCN)
D.1.5 使用 // 注释代码
D.1.6 禁止隐式 int 和隐式函数声明
D.1.7 使用隐式 int 的声明
D.1.8 灵活的数组成员
D.1.9 幂等限定符
D.1.10 inline 函数
D.1.10.1 Oracle Solaris Studio C 编译器针对内联函数的 gcc 兼容性
D.1.11 Static 及数组声明符中允许的其他类型限定符
D.1.12 可变长度数组 (VLA):
D.1.13 指定的初始化程序
D.1.14 混合声明和代码
D.1.15 for 循环语句中的声明
D.1.16 具有可变数目的参数的宏
D.1.17 _Pragma
附录 E 实现定义的 ISO/IEC C99 行为
E.1 实现定义的行为 (J.3)
E.1.1 转换 (J.3.1)
E.1.2 环境 (J.3.2)
E.1.3 标识符 (J.3.3)
E.1.4 字符 (J.3.4)
E.1.5 整数 (J.3.5)
E.1.6 浮点 (J.3.6)
E.1.7 数组和指针 (J.3.7)
E.1.8 提示 (J.3.8)
E.1.9 结构、联合、枚举和位字段 (J.3.9)
E.1.10 限定符 (J.3.10)
E.1.11 预处理指令 (J.3.11)
E.1.12 库函数 (J.3.12)
E.1.13 体系结构 (J.3.13)
E.1.14 语言环境特定的行为 (J.4)
附录 F 实现定义的 ISO/IEC C90 行为
F.1 与 ISO 标准比较的实现
F.1.1 转换 (G.3.1)
F.1.1.1 (5.1.1.3) 识别诊断:
F.1.2 环境 (G.3.2)
F.1.2.1 (5.1.2.2.1) Semantics of arguments to main(main 的参数的语义):
F.1.2.2 (5.1.2.3) What constitutes an interactive device(交互式设备的要素):
F.1.3 标识符 (G.3.3)
F.1.3.1 (6.1.2) The number of significant initial characters (beyond 31) in an identifier without external linkage(不带外部链接的标识符中的有效初始字符(第 31 个字符之后)的数目):
(6.1.2) The number of significant initial characters (beyond 6) in an identifier with external linkage(带外部链接的标识符中的有效初始字符(第 6 个字符之后)的数目):
F.1.4 字符 (G.3.4)
F.1.4.1 (5.2.1) The members of the source and execution character sets, except as explicitly specified in the Standard(除非标准中明确指定,否则为源代码字符集和执行字符集的成员):
F.1.4.2 (5.2.1.2) The shift states used for the encoding of multibyte characters(用于多字节字符编码的移位状态):
F.1.4.3 (5.2.4.2.1) The number of bits in a character in the execution character set(执行字符集中字符的位数):
F.1.4.4 (6.1.3.4) The mapping of members of the source character set (in character and string literals) to members of the execution character set(源代码字符集成员(用字符和文本字符串表示)至执行字符集成员的映射):
F.1.4.5 (6.1.3.4) The value of an integer character constant that contains a character or escape sequence not represented in the basic execution character set or the extended character set for a wide character constant(包含一个字符的整型字符常量的值或不以基本执行字符集或宽字符常量的扩展字符集表示的换码序列的值):
F.1.4.6 (3.1.3.4) The value of an integer character constant that contains more than one character or a wide character constant that contains more than one multibyte character(包含多个字符的整型字符常量的值或包含多个多字节字符的宽字节常量的值):
F.1.4.7 (6.1.3.4) The current locale used to convert multibyte characters into corresponding wide characters (codes) for a wide character constant(用于针对宽字符常量将多字节字符转换为相应宽字符的当前语言环境):
F.1.4.8 (6.2.1.1) Whether a plain char has the same range of values as signed char or unsigned char(无格式 char 的值范围是与 signed char 相同还是与 unsigned char 相同):
F.1.5 整数 (G.3.5)
F.1.5.1 (6.1.2.5) The representations and sets of values of the various types of integers(各种类型的整数的表示和值集):
F.1.5.2 (6.2.1.2) The result of converting an integer to a shorter signed integer, or the result of converting an unsigned integer to a signed integer of equal length, if the value cannot be represented(值无法表示的情况下,整数转换为较短的带符号整型数的结果,或者无符号整型数转换为同等长度的带符号整型数的结果):
F.1.5.3 (6.3) The results of bitwise operations on signed integers(带符号整型数的按位操作的结果):
F.1.5.4 (6.3.5) The sign of the remainder on integer division(整数除法的余数的符号):
F.1.5.5 (6.3.7) The result of a right shift of a negative-valued signed integral type(负值带符号整型的右移的结果):
F.1.6 浮点 (G.3.6)
F.1.6.1 (6.1.2.5) The representations and sets of values of the various types of floating-point numbers(各种类型的浮点数的表示形式和值集):
F.1.6.2 (6.2.1.3) The direction of truncation when an integral number is converted to a floating-point number that cannot exactly represent the original value(当整数转换为不能精确地表示原始值的浮点数时截断的方向):
F.1.6.3 (6.2.1.4) The direction of truncation or rounding when a floating point number is converted to a narrower floating-point number(当浮点数转换为较窄的浮点数时截断或舍入的方向):
F.1.7 数组和指针 (G.3.7)
F.1.7.1 (6.3.3.4,7.1.1)The type of integer required to hold the maximum size of an array; that is, the type of the sizeof operator, size_t(存放数组的最大大小所需的整型;即 sizeof 运算符的类型 size_t):
F.1.7.2 (6.3.4) The result of casting a pointer to an integer, or vice versa(将指针强制转换为整数的结果,或将整数强制转换为指针的结果):
F.1.7.3 (6.3.6、7.1.1)The type of integer required to hold the difference between two pointers to members of the same array, ptrdiff_t(存放指向同一数组中成员的两个指针之差所需的整型 ptrdiff_t):
F.1.8 寄存器 (G.3.8)
F.1.8.1 (6.5.1) The extent to which objects can actually be placed in registers by use of the register storage-class specifier(可通过使用 register 存储类说明符实际放入寄存器中的对象的范围):
F.1.9 结构、联合、枚举和位字段 (G.3.9)
F.1.9.1 (6.3.2.3) A member of a union object is accessed using a member of a different type(使用不同类型的成员访问的联合对象的成员):
F.1.9.2 (6.5.2.1) The padding and alignment of members of structures(结构成员的填充和对齐)。
F.1.9.3 (6.5.2.1) Whether a plain int bit-field is treated as a signed int bit-field or as an unsigned int bit-field(无格式 int 位字段是视为 signed int 位字段还是视为 unsigned int 位字段处理):
F.1.9.4 (6.5.2.1) The order of allocation of bit-fields within an int(在 int 中位字段的分配顺序):
F.1.9.5 (6.5.2.1) Whether a bit-field can straddle a storageunit boundary(位字段是否可以跨存储单元边界):
F.1.9.6 (6.5.2.2) The integer type chosen to represent the values of an enumeration type(选择用来表示枚举类型的值的整型):
F.1.10 限定符 (G.3.10)
F.1.10.1 (6.5.5.3) What constitutes an access to an object that has volatile-qualified type(什么构成对为 volatile 限定类型的对象的访问):
F.1.11 声明符 (G.3.11)
F.1.11.1 (6.5.4) The maximum number of declarators that may modify an arithmetic, structure, or union type(可修改算术、结构或联合类型的声明数最大值):
F.1.12 语句 (G.3.12)
F.1.12.1 (6.6.4.2) The maximum number of case values in a switch statement(一个 switch 语句中 case 值的最大数目):
F.1.13 预处理指令 (G.3.13)
F.1.13.1 (6.8.1) Whether the value of a singlecharacter character constant in a constant expression that controls conditional inclusion matches the value of the same character constant in the execution character set(控制条件包含的常量表达式中字符常量的值是否与执行字符集内的相同字符常量的值匹配):
F.1.13.2 (6.8.1) Whether such a character constant may have a negative value(这样的字符常量是否可以具有负值):
F.1.13.3 (6.8.2) The method for locating includable source files(定位可包含的源文件的方法):
F.1.13.4 (6.8.2) The support of quoted names for includable source files(对可包含的源文件的带引号名称的支持):
F.1.13.5 (6.8.2) The mapping of source file character sequences(源文件字符序列的映射):
F.1.13.6 (6.8.6) 每个已识别的 #pragma 指令的行为:
F.1.13.7 (6.8.8) 当转换的日期和时间不可用时,__DATE__ 和 __TIME__ 各自的定义:
F.1.14 库函数 (G.3.14)
F.1.14.1 (7.1.6) 宏 NULL 扩展为的空指针常量:
F.1.14.2 (7.2) The diagnostic printed by and the termination behavior of the assert function(assert 函数打印的诊断及该函数的终止行为):
F.1.14.3 (7.3.1) 由 isalnum、isalpha、iscntrl、islower、isprint 和 isupper 函数测试的字符集:
F.1.14.4 (7.5.1) The values returned by the mathematics functions on domain errors(发生域错误时数学函数返回的值):
F.1.14.5 (7.5.1) Whether the mathematics functions set the integer expression errno to the value of the macro ERANGE on underflow range errors(在出现下溢范围错误时,数学函数是否将整数表达式 errno 设置为宏 ERANGE 的值):
F.1.14.6 (7.5.6.4) Whether a domain error occurs or zero is returned when the fmod function has a second argument of zero(fmod 函数的第二个参数为零时,发生域错误还是返回零):
F.1.14.7 (7.7.1.1) The set of signals for the signal function(用于 signal 函数的信号集):
F.1.14.8 (7.7.1.1) The default handling and the handling at program startup for each signal recognized by the signal function(针对信号函数识别的每个 signal 的缺省处理和程序启动时的处理):
F.1.14.9 (7.7.1.1) If the equivalent of signal(sig, SIG_DFL); is not executed prior to the call of a signal handler, the blocking of the signal that is performed(如果在调用信号处理程序之前未执行 signal(sig, SIG_DFL) 的等效函数,则阻塞执行的信号):
F.1.14.10 (7.7.1.1) Whether the default handling is reset if the SIGILL signal is received by a handler specified to the signal function(为信号函数指定的处理程序接收到 SIGILL 信号时,是否重置缺省处理):
F.1.14.11 (7.9.2) Whether the last line of a text stream requires a terminating new-line character(文本流的最后一行是否需要终止换行符):
F.1.14.12 (7.9.2) Whether space characters that are written out to a text stream immediately before a new-line character appear when read in(写出到换行符紧前面的文本流中的空格字符在读入时是否出现):
F.1.14.13 (7.9.2) The number of null characters that may be appended to data written to a binary stream(可附加至写入二进制流的数据的空字符数):
F.1.14.14 (7.9.3) Whether the file position indicator of an append mode stream is initially positioned at the beginning or end of the file(附加模式流的文件位置指示器最初位于文件开头还是结尾):
F.1.14.15 (7.9.3) Whether a write on a text stream causes the associated file to be truncated beyond that point(文本流中的写是否导致联合文件在该点之后被截断):
F.1.14.16 (7.9.3) The characteristics of file buffering(文件缓冲的特性):
F.1.14.17 (7.9.3) Whether a zero-length file actually exists(零长度文件是否实际存在):
F.1.14.18 (7.9.3) The rules for composing valid file names(书写有效文件名的规则):
F.1.14.19 (7.9.3) Whether the same file can be open multiple times(同一文件是否可以多次打开):
F.1.14.20 (7.9.4.1) The effect of the remove function on an open file(remove 函数对打开的文件的影响):
F.1.14.21 (7.9.4.2) The effect if a file with the new name exists prior to a call to the rename function(在调用 rename 函数之前已存在具有新名称的文件时的影响):
F.1.14.22 (7.9.6.1) The output for conversion in the fprintf function(fprintf 函数中 %p 转换的输出):
F.1.14.23 (7.9.6.2) The input for conversion in the function(fscanf 函数中 %p 转换的输入):
F.1.14.24 (7.9.6.2) The interpretation of a- character that is neither the first nor the last character in the scan list for %[ conversion in the fscanf function(对既不是 fscanf 函数中 %[ 转换的扫描列表中的第一个字符也不是最后一个字符的 - 字符的解释):
F.1.15 语言环境特定的行为 (G.4)
F.1.15.1 (7.12.1) The local time zone and Daylight Savings Time(本地时区和夏令时):
F.1.15.2 (7.12.2.1) The era for the clock function(clock 函数的年代)
F.1.15.3 (5.2.1) The content of the execution character set, in addition to the required members(执行字符集的内容,以及必需的成员):
F.1.15.4 (5.2.2) The direction of printing(打印方向):
F.1.15.5 (7.1.1) 小数点字符:
F.1.15.6 (7.3) The implementation-defined aspects of character testing and case mapping functions(字符测试和条件映射函数的实现定义方面):
F.1.15.7 (7.11.4.4) The collation sequence of the execution character set(执行字符集的整理序列):
F.1.15.8 (7.12.3.5) The formats for time and date(时间和日期的格式):
附录 G ISO C 数据表示法
G.1 存储分配
G.2 数据表示法
G.2.1 整数表示法
G.2.2 浮点表示法
G.2.3 异常值
G.2.4 选定的数的十六进制表示
G.2.5 指针表示法
G.2.6 数组存储
G.2.7 异常值的算术运算
G.3 参数传递机制
G.3.1 32 位 SPARC
G.3.2 64 位 SPARC
G.3.3 x86/x64
附录 H 性能优化
H.1 libfast.a 库 (SPARC)
附录 I Oracle Solaris Studio C:K&R C 与 ISO C 之间的差异
I.1 不兼容性
I.2 关键字
索引
索引 数字和符号
索引 A
索引 B
索引 C
索引 D
索引 E
索引 F
索引 G
索引 I
索引 J
索引 K
索引 L
索引 M
索引 N
索引 O
索引 P
索引 R
索引 S
索引 T
索引 U
索引 V
索引 W
语言:
简体中文
7.3 转换为 LP64 数据类型模型
以下示例说明在转换代码时可能遇到的某些常见问题。适当时会显示相应的
lint
警告。
上一页
下一页