SolarisStudio12.2:C用户指南
文件号码821–25102010年9月
版权所有©1991,2010,Oracle和/或其附属公司。
保留所有权利。
本软件和相关文档是根据许可证协议提供的,该许可证协议中规定了关于使用和公开本软件和相关文档的各种限制,并受知识产权法的保护。
除非在许可证协议中明确许可或适用法律明确授权,否则不得以任何形式、任何方式使用、拷贝、复制、翻译、广播、修改、授权、传播、分发、展示、执行、发布或显示本软件和相关文档的任何部分。
除非法律要求实现互操作,否则严禁对本软件进行逆向工程设计、反汇编或反编译。
此文档所含信息可能随时被修改,恕不另行通知,我们不保证该信息没有错误。
如果贵方发现任何问题,请书面通知我们。
如果将本软件或相关文档交付给美国政府,或者交付给以美国政府名义获得许可证的任何机构,必须符合以下规定:
U.S.GOVERNMENTRIGHTSPrograms,software,databases,andrelateddocumentationandtechnicaldatadeliveredtoU.S.Governmentcustomersareputersoftware"ormercialtechnicaldata"pursuanttotheapplicableFederalAcquisitionRegulationandagency-specificsupplementalregulations.Assuch,theuse,duplication,disclosure,modification,andadaptationshallbesubjecttotherestrictionsandlicensetermssetforthintheapplicableGovernmentcontract,and,totheextentapplicablebythetermsoftheGovernmentcontract,theadditionalrightssetforthinFAR52.227-19,CommercialComputerSoftwareLicense(December2007).OracleAmerica,Inc.,500OracleParkway,RedwoodCity,CA94065.本软件或硬件是为了在各种信息管理应用领域内的一般使用而开发的。
它不应被应用于任何存在危险或潜在危险的应用领域,也不是为此而开发的,其中包括可能会产生人身伤害的应用领域。
如果在危险应用领域内使用本软件或硬件,贵方应负责采取所有适当的防范措施,包括备份、冗余和其它确保安全使用本软件或硬件的措施。
对于因在危险应用领域内使用本软件或硬件所造成的一切损失或损害,OracleCorporation及其附属公司概不负责。
Oracle和Java是Oracle和/或其附属公司的注册商标。
其他名称可能是各自所有者的商标。
AMD、Opteron、AMD徽标以及AMDOpteron徽标是AdvancedMicroDevices的商标或注册商标。
Intel和IntelXeon是IntelCorporation的商标或注册商标。
所有SPARC商标均是SPARCInternational,Inc的商标或注册商标,并应按照许可证的规定使用。
UNIX是通过X/OpenCompany,Ltd授权的注册商标。
本软件或硬件以及文档可能提供了访问第三方内容、产品和服务的方式或有关这些内容、产品和服务的信息。
对于第三方内容、产品和服务,OracleCorporation及其附属公司明确表示不承担任何种类的担保,亦不对其承担任何责任。
对于因访问或使用第三方内容、产品或服务所造成的任何损失、成本或损害,OracleCorporation及其附属公司概不负责。
110414@25097
目录
前言........................................................................................................................................................21
1C编译器介绍.......................................................................................................................................251.15.11版SolarisStudio12Update2发行版的新增功能...........................................................251.2x86特殊注意事项........................................................................................................................
261.3二进制兼容验证...........................................................................................................................
261.4针对64位平台进行编译............................................................................................................
271.5标准一致性....................................................................................................................................
271.6C自述文件....................................................................................................................................
271.7手册页............................................................................................................................................
281.8编译器的组织结构......................................................................................................................
281.9与C相关的编程工具..................................................................................................................
30 2特定于C编译器实现的信息............................................................................................................312.1常量.................................................................................................................................................
312.1.1整型常量.............................................................................................................................
312.1.2字符常量.............................................................................................................................
322.2链接程序作用域说明符..............................................................................................................
322.3线程局部存储说明符..................................................................................................................
332.4浮点,非标准模式......................................................................................................................
342.5作为值的标签...............................................................................................................................
342.6longlong数据类型.....................................................................................................................362.6.1输出longlong数据类型.................................................................................................362.6.2常见算术转换.....................................................................................................................
362.7switch语句中的case范围..........................................................................................................
372.8断言.................................................................................................................................................
382.9支持的属性....................................................................................................................................
39
3
目录
2.10警告和错误.................................................................................................................................
402.11Pragma..........................................................................................................................................
40 2.11.1align....................................................................................................................................
402.11.2c99.......................................................................................................................................
402.11.3does_not_read_global_data............................................................................................
412.11.4does_not_return...............................................................................................................
412.11.5does_not_write_global_data...........................................................................................
412.11.6error_messages.................................................................................................................
422.11.7fini.......................................................................................................................................
422.11.8...............................................................................................................................
422.11.9ident....................................................................................................................................
432.11.10init.....................................................................................................................................
432.11.11inline.................................................................................................................................
442.11.12int_to_unsigned..............................................................................................................
442.11.13MPserial_loop................................................................................................................
442.11.14MPserial_loop_nested...................................................................................................
452.11.15MPtaskloop.....................................................................................................................
452.11.16nomemorydepend..........................................................................................................
452.11.17no_side_effect.................................................................................................................
452.11.18opt.....................................................................................................................................
462.11.19pack..................................................................................................................................
462.11.20pipeloop...........................................................................................................................
472.11.21rarely_called....................................................................................................................
472.11.22redefine_extname...........................................................................................................
482.11.23returns_new_memory...................................................................................................
492.11.24unknown_control_flow.................................................................................................
492.11.25unroll................................................................................................................................
492.11.26warn_missing_parameter_info....................................................................................502.11.27weak..................................................................................................................................
502.12预定义的名称.............................................................................................................................
512.13保留errno的值..........................................................................................................................
512.14扩展...............................................................................................................................................
522.14.1_Restrict关键字............................................................................................................
522.14.2__asm关键字...................................................................................................................522.14.3__inline和__inline__.................................................................................................
522.14.4__builtin_constant_p()..............................................................................................
52
4
OracleSolarisStudio12.2:C用户指南•2010年9月
目录
2.14.5__FUNCTION__和__PRETTY_FUNCTION__.....................................................................532.15环境变量......................................................................................................................................
53 2.15.1OMP_DYNAMIC......................................................................................................................
532.15.2OMP_NESTED........................................................................................................................
532.15.3OMP_NUM_THREADS.............................................................................................................
532.15.4OMP_SCHEDULE...................................................................................................................
532.15.5PARALLEL............................................................................................................................
532.15.6SUN_PROFDATA...................................................................................................................
532.15.7SUN_PROFDATA_DIR...........................................................................................................
532.15.8SUNW_MP_THR_IDLE...........................................................................................................
542.15.9TMPDIR................................................................................................................................
542.16如何指定include文件..............................................................................................................
542.16.1使用-I-选项更改搜索算法.........................................................................................552.17在独立式环境中编译................................................................................................................
57 3并行化C代码.......................................................................................................................................593.1概述.................................................................................................................................................
593.1.1使用示例.............................................................................................................................
593.2OpenMP并行化...........................................................................................................................
603.2.1处理OpenMP运行时警告..............................................................................................
603.3环境变量........................................................................................................................................
603.3.1PARALLEL或OMP_NUM_THREADS........................................................................................603.3.2SUNW_MP_THR_IDLE.............................................................................................................
613.3.3SUNW_MP_WARN......................................................................................................................
613.3.4STACKSIZE............................................................................................................................
613.3.5在并行代码中使用restrict..........................................................................................623.4数据依赖性和干扰......................................................................................................................
623.4.1并行执行模型.....................................................................................................................
633.4.2私有标量和私有数组.......................................................................................................
653.4.3返回存储.............................................................................................................................
673.4.4约简变量.............................................................................................................................
673.5加速.................................................................................................................................................
683.5.1Amdahl定律.......................................................................................................................
683.6负载平衡和循环调度..................................................................................................................
713.6.1静态调度或块调度............................................................................................................
71
5
目录
3.6.2自我调度.............................................................................................................................
723.6.3引导自我调度.....................................................................................................................
723.7循环变换........................................................................................................................................
723.7.1循环分布.............................................................................................................................
723.7.2循环合并.............................................................................................................................
733.7.3循环交换.............................................................................................................................
743.8别名和并行化...............................................................................................................................
753.8.1数组引用和指针引用.......................................................................................................
753.8.2限定指针.............................................................................................................................
753.8.3显式并行化和Pragma......................................................................................................
763.9内存边界内部函数......................................................................................................................
83 4lint源代码检验器.............................................................................................................................854.1基本和增强lint模式.................................................................................................................
854.2使用lint.......................................................................................................................................
864.3lint选项.......................................................................................................................................
874.3.1-#...........................................................................................................................................
874.3.2-###......................................................................................................................................
884.3.3-a...........................................................................................................................................
884.3.4-b...........................................................................................................................................
884.3.5-Cfilename...........................................................................................................................
884.3.6-c...........................................................................................................................................
884.3.7-dirout=dir.........................................................................................................................
884.3.8-err=warn............................................................................................................................
884.3.9-errchk=l(,l).......................................................................................................................
884.3.10-errfmt=f...........................................................................................................................
894.3.11-errhdr=h..........................................................................................................................
904.3.12-erroff=tag(,tag)............................................................................................................
904.3.13-errsecurity=v...............................................................................................................
914.3.14-errtags=a........................................................................................................................
924.3.15-errwarn=t........................................................................................................................
924.3.16-F.........................................................................................................................................
934.3.17-fd......................................................................................................................................
934.3.18-flagsrc=file.....................................................................................................................
934.3.19-h.........................................................................................................................................
93
6
OracleSolarisStudio12.2:C用户指南•2010年9月
目录
4.3.20-Idir....................................................................................................................................
934.3.21-k.........................................................................................................................................
934.3.22-Ldir....................................................................................................................................
934.3.23-lx......................................................................................................................................
934.3.24-m.........................................................................................................................................
944.3.25-m32|-m64...........................................................................................................................
944.3.26-Ncheck=c..........................................................................................................................
944.3.27-Nlevel=n..........................................................................................................................
954.3.28-n.........................................................................................................................................
964.3.29-ox......................................................................................................................................
964.3.30-p.........................................................................................................................................
964.3.31-Rfile...................................................................................................................................
964.3.32-s.........................................................................................................................................
964.3.33-u.........................................................................................................................................
964.3.34-V.........................................................................................................................................
964.3.35-v.........................................................................................................................................
964.3.36-Wfile...................................................................................................................................
974.3.37-XCC=a................................................................................................................................
974.3.38-Xalias_level[=l].........................................................................................................974.3.39-Xarch=amd64...................................................................................................................
974.3.40-Xarch=v9..........................................................................................................................
974.3.41-Xc99[=o]..........................................................................................................................
974.3.42-Xkeeptmp=a......................................................................................................................
984.3.43-Xtemp=dir.........................................................................................................................
984.3.44-Xtime=a............................................................................................................................
984.3.45-Xtransition=a...............................................................................................................
984.3.46-Xustr={ascii_utf16_ushort|no}...............................................................................984.3.47-x.........................................................................................................................................
984.3.48-y.........................................................................................................................................
994.4lint消息.......................................................................................................................................
994.4.1用于禁止消息的选项.......................................................................................................
994.4.2lint消息格式..................................................................................................................
1004.5lint指令.....................................................................................................................................
1024.5.1预定义值...........................................................................................................................
1024.5.2指令....................................................................................................................................
1024.6lint参考和示例........................................................................................................................
105
7
目录
4.6.1由lint执行的诊断.........................................................................................................
1054.6.2lint库...............................................................................................................................
1084.6.3lint过滤器......................................................................................................................
109 5基于类型的别名分析......................................................................................................................
1115.1介绍基于类型的分析................................................................................................................
1115.2使用Pragma以便更好地控制.................................................................................................
1125.2.1#pragmaalias_levellevel(list)...................................................................................1125.3使用lint检查............................................................................................................................
1145.3.1标量指针向结构指针的强制类型转换.......................................................................1145.3.2空指针向结构指针的强制类型转换...........................................................................1155.3.3结构字段向结构指针的强制类型转换.......................................................................1155.3.4要求显式别名...................................................................................................................
1155.4内存引用约束的示例................................................................................................................
1165.4.1第一个示例.......................................................................................................................
1165.4.2第二个示例.......................................................................................................................
1185.4.3第三个示例.......................................................................................................................
1195.4.4第四个示例.......................................................................................................................
1215.4.5第五个示例.......................................................................................................................
1235.4.6第六个示例.......................................................................................................................
1235.4.7第七个示例.......................................................................................................................
124 6转换为ISOC.......................................................................................................................................1256.1基本模式......................................................................................................................................
1256.1.1-Xc.......................................................................................................................................
1256.1.2-Xa.......................................................................................................................................
1256.1.3-Xt.......................................................................................................................................
1256.1.4-Xs.......................................................................................................................................
1266.2旧式和新式函数的混合............................................................................................................
1266.2.1编写新代码.......................................................................................................................
1266.2.2更新现有代码...................................................................................................................
1266.2.3混合注意事项...................................................................................................................
1276.3带有可变参数的函数................................................................................................................
1296.4提升:无符号保留与值保留...................................................................................................
1316.4.1背景....................................................................................................................................
131
8
OracleSolarisStudio12.2:C用户指南•2010年9月
目录
6.4.2编译行为...........................................................................................................................
1316.4.3第一个示例:强制类型转换的使用...........................................................................1316.4.4位字段................................................................................................................................
1326.4.5第二个示例:相同的结果.............................................................................................
1326.4.6整型常量...........................................................................................................................
1336.4.7第三个示例:整型常量.................................................................................................
1336.5标记化和预处理.........................................................................................................................
1346.5.1ISOC转换阶段................................................................................................................
1346.5.2旧C转换阶段..................................................................................................................
1356.5.3逻辑源代码行...................................................................................................................
1356.5.4宏替换................................................................................................................................
1356.5.5使用字符串.......................................................................................................................
1366.5.6标记粘贴...........................................................................................................................
1366.6const和volatile......................................................................................................................
1376.6.1类型(仅适用于lvalue)............................................................................................
1376.6.2派生类型中的类型限定符.............................................................................................
1376.6.3const意味着readonly...................................................................................................
1386.6.4const用法示例................................................................................................................
1396.6.5volatile意味着精确语义............................................................................................
1396.6.6volatile用法示例..........................................................................................................
1396.7多字节字符和宽字符................................................................................................................
1406.7.1亚洲语言需要多字节字符.............................................................................................
1406.7.2编码变种...........................................................................................................................
1406.7.3宽字符................................................................................................................................
1406.7.4转换函数...........................................................................................................................
1416.7.5C语言特征........................................................................................................................
1416.8标准头文件和保留名称............................................................................................................
1426.8.1标准头文件.......................................................................................................................
1426.8.2保留供实现使用的名称.................................................................................................
1426.8.3保留供扩展使用的名称.................................................................................................
1436.8.4可安全使用的名称..........................................................................................................
1436.9国际化..........................................................................................................................................
1446.9.1语言环境...........................................................................................................................
1446.9.2setlocale()函数............................................................................................................
1446.9.3更改的函数.......................................................................................................................
1456.9.4新函数................................................................................................................................
146
9
目录
6.10表达式中的分组和求值.........................................................................................................
1466.10.1定义..................................................................................................................................
1476.10.2K&RC重新整理许可证...............................................................................................
1476.10.3ISOC规则.......................................................................................................................
1476.10.4圆括号..............................................................................................................................
1486.10.5AsIf规则.........................................................................................................................
148 6.11不完全类型...............................................................................................................................
1496.11.1类型..................................................................................................................................
1496.11.2完成不完全类型............................................................................................................
1496.11.3声明..................................................................................................................................
1496.11.4表达式..............................................................................................................................
1506.11.5正当理由.........................................................................................................................
1506.11.6示例..................................................................................................................................
150 6.12兼容类型和复合类型..............................................................................................................
1516.12.1多个声明.........................................................................................................................
1516.12.2分别编译兼容性............................................................................................................
1516.12.3单编译兼容性................................................................................................................
1516.12.4兼容指针类型................................................................................................................
1516.12.5兼容数组类型................................................................................................................
1526.12.6兼容函数类型................................................................................................................
1526.12.7特殊情况.........................................................................................................................
1526.12.8复合类型.........................................................................................................................
152 7转换应用程序以适用于64位环境...............................................................................................1537.1数据模型差异概述....................................................................................................................
1537.2实现单一源代码.........................................................................................................................
1547.2.1派生类型...........................................................................................................................
1547.2.2工具....................................................................................................................................
1577.3转换为LP64数据类型模型.....................................................................................................
1587.3.1整型和指针长度更改.....................................................................................................
1587.3.2整型和长型长度更改.....................................................................................................
1587.3.3符号扩展...........................................................................................................................
1597.3.4指针运算而不是整数.....................................................................................................
1607.3.5结构....................................................................................................................................
1607.3.6联合....................................................................................................................................
161 10 OracleSolarisStudio12.2:C用户指南•2010年9月 目录 7.3.7类型常量...........................................................................................................................
1617.3.8注意隐式声明...................................................................................................................
1617.3.9sizeof()是无符号long...............................................................................................
1627.3.10使用强制类型转换显示您的意图.............................................................................1627.3.11检查格式字符串转换操作...........................................................................................
1627.4其他考虑事项.............................................................................................................................
1637.4.1长度增长的派生类型.....................................................................................................
1637.4.2检查更改的副作用..........................................................................................................
1647.4.3检查直接使用long是否仍有意义..............................................................................1647.4.4对显式32位与64位原型使用#ifdef........................................................................1647.4.5调用转换更改...................................................................................................................
1647.4.6算法更改...........................................................................................................................
1647.5入门指南清单.............................................................................................................................
165 8cscope:交互检查C程序...............................................................................................................1678.1cscope进程.................................................................................................................................
1678.2基本用法......................................................................................................................................
1688.2.1步骤1:设置环境...........................................................................................................
1688.2.2步骤2:调用cscope程序.............................................................................................
1688.2.3步骤3:查找代码...........................................................................................................
1698.2.4步骤4:编辑代码...........................................................................................................
1748.2.5命令行选项.......................................................................................................................
1758.2.6视图路径...........................................................................................................................
1768.2.7cscope和编辑器调用栈.................................................................................................
1778.2.8示例....................................................................................................................................
1778.2.9编辑器的命令行语法.....................................................................................................
1808.3未知终端类型错误....................................................................................................................
181 A按功能分组的编译器选项.............................................................................................................
183A.1按功能汇总的选项...................................................................................................................
183A.1.1优化和性能选项.............................................................................................................
183A.1.2编译时选项和链接时选项............................................................................................
185A.1.3数据对齐选项..................................................................................................................
186A.1.4数值和浮点选项.............................................................................................................
186A.1.5并行化选项......................................................................................................................
187 11 目录 A.1.6源代码选项......................................................................................................................
187A.1.7编译代码选项..................................................................................................................
189A.1.8编译模式选项..................................................................................................................
189A.1.9诊断选项..........................................................................................................................
190A.1.10调试选项........................................................................................................................
190A.1.11链接选项和库选项.......................................................................................................
191A.1.12目标平台选项................................................................................................................
192A.1.13x86特定选项.................................................................................................................
192A.1.14许可证选项....................................................................................................................
193A.1.15废弃的选项....................................................................................................................
193 BC编译器选项参考.............................................................................................................................195B.1选项语法......................................................................................................................................
195选项.........................................................................................................................................
196B.2.1-#........................................................................................................................................
196B.2.2-###....................................................................................................................................
196B.2.3-Aname[(tokens)]............................................................................................................
196B.2.4-B[static|dynamic].......................................................................................................
197B.2.5-C........................................................................................................................................
197B.2.6-c........................................................................................................................................
197B.2.7-Dname[(arg[,arg])][=expansion].................................................................................197B.2.8-d[y|n]................................................................................................................................
198B.2.9-dalign..............................................................................................................................
198B.2.10-E......................................................................................................................................
198B.2.11-errfmt[=[no%]error].................................................................................................
198B.2.12-errhdr[=h]...................................................................................................................
198B.2.13-erroff[=t]....................................................................................................................
199B.2.14-errshort[=i]................................................................................................................
199B.2.15-errtags[=a].................................................................................................................
200B.2.16-errwarn[=t]..................................................................................................................
200B.2.17-fast................................................................................................................................
201B.2.18-fd....................................................................................................................................
203B.2.19-features=[v]................................................................................................................
203B.2.20-flags..............................................................................................................................
203B.2.21-flteval[={any|2}]......................................................................................................
203 12 OracleSolarisStudio12.2:C用户指南•2010年9月 目录 B.2.22-fma[={none|fused}]....................................................................................................
204B.2.23-fnonstd..........................................................................................................................
204B.2.24-fns[={no|yes}]..............................................................................................................
204B.2.25-fPIC................................................................................................................................
205B.2.26-fpic...............................................................................................................................
205B.2.27-fprecision=p...............................................................................................................
205B.2.28-fround=r........................................................................................................................
205B.2.29-fsimple[=n].................................................................................................................
206B.2.30-fsingle..........................................................................................................................
207B.2.31-fstore............................................................................................................................
207B.2.32-ftrap=t[,t...]...............................................................................................................
207B.2.33-G......................................................................................................................................
208B.2.34-g......................................................................................................................................
208B.2.35-H......................................................................................................................................
209B.2.36-hname............................................................................................................................
209B.2.37-I[-|dir].........................................................................................................................
210B.2.38-i......................................................................................................................................
210B.2.39-includefilename..........................................................................................................
210B.2.40-KPIC................................................................................................................................
211B.2.41-Kpic................................................................................................................................
211B.2.42-keeptmp..........................................................................................................................
211B.2.43-Ldir.................................................................................................................................
211B.2.44-lname............................................................................................................................
211B.2.45-m32|-m64........................................................................................................................
212B.2.46-mc....................................................................................................................................
212B.2.47-misalign.......................................................................................................................
212B.2.48-misalign2.....................................................................................................................
212B.2.49-mr[,string]....................................................................................................................
213B.2.50-mt[={yes|no}]..............................................................................................................
213B.2.51-native............................................................................................................................
213B.2.52-nofstore.......................................................................................................................
214B.2.53-O......................................................................................................................................
214B.2.54-ofilename.......................................................................................................................
214B.2.55-P......................................................................................................................................
214B.2.56-p......................................................................................................................................
214B.2.57-Q[y|n]..............................................................................................................................
214 13 目录 B.2.58-qp....................................................................................................................................
214B.2.59-Rdir[:dir].....................................................................................................................
215B.2.60-S......................................................................................................................................
215B.2.61-s......................................................................................................................................
215B.2.62-traceback[={%mon|signals_list}]...............................................................215B.2.63-Uname............................................................................................................................
216B.2.64-V......................................................................................................................................
216B.2.65-v......................................................................................................................................
216B.2.66-Wc,arg...........................................................................................................................
217B.2.67-w......................................................................................................................................
218B.2.68-X[c|a|t|s].....................................................................................................................
218B.2.69-x386................................................................................................................................
218B.2.70-x486................................................................................................................................
219B.2.71-xaddr32[=yes|no].........................................................................................................
219B.2.72-xalias_level[=l]........................................................................................................
219B.2.73-xannotate[=yes|no]...................................................................................................
221B.2.74–xarch=isa.......................................................................................................................
221B.2.75ar.......................................................................................................................
225B.2.76-xbinopt={prepare|off}............................................................................................
226B.2.77-xbuiltin[=(%all|%none)].........................................................................................226B.2.78-xCC..................................................................................................................................
226B.2.79-xc99[=o]........................................................................................................................
227B.2.80-xcache[=c]....................................................................................................................
227B.2.81–xcg[89|92].....................................................................................................................
229B.2.82-xchar[=o]......................................................................................................................
229B.2.83-xchar_byte_order[=o]...............................................................................................
230B.2.84-xcheck[=o]....................................................................................................................
230B.2.85-xchip[=c]......................................................................................................................
232B.2.86-xcode[=v]......................................................................................................................
234B.2.87-xcrossfile...................................................................................................................
236B.2.88-xcsi................................................................................................................................
236B.2.89-xdebugformat=[stabs|dwarf]...................................................................................236B.2.90-xdepend=[yes|no]......................................................................................................
237B.2.91-xdryrun..........................................................................................................................
237B.2.92-xe....................................................................................................................................
237B.2.93-xF[=v[,v...]]....................................................................................................................
237 14 OracleSolarisStudio12.2:C用户指南•2010年9月 目录 B.2.94-xhelp=f..........................................................................................................................
238B.2.95-xhwcprof.......................................................................................................................
238B.2.96-xinline=list..................................................................................................................
239B.2.97-xinstrument=[no%]datarace...................................................................................240B.2.98-xipo[=a]........................................................................................................................
241B.2.99-xipo_archive=[a]........................................................................................................
242B.2.100-xjobs=n.......................................................................................................................
243B.2.101-xldscope={v}..............................................................................................................
244B.2.102-xlibmieee...................................................................................................................
245B.2.103-xlibmil.......................................................................................................................
245B.2.104-xlibmopt.....................................................................................................................
245B.2.105-xlic_lib=sunperf....................................................................................................
245B.2.106-xlicinfo.....................................................................................................................
245B.2.107-xlinkopt[=level]........................................................................................................
246B.2.108-xloopinfo...................................................................................................................
247B.2.109-xM..................................................................................................................................
247B.2.110-xM1................................................................................................................................
247B.2.111-xMD................................................................................................................................
248B.2.112-xMFfilename................................................................................................................
248B.2.113-xMMD..............................................................................................................................
248B.2.114-xMerge..........................................................................................................................
248B.2.115-xmaxopt[=v]................................................................................................................
249B.2.116-xmemalign=ab.............................................................................................................
249B.2.117-xmodel=[a]..................................................................................................................
250B.2.118-xnolib..........................................................................................................................
251B.2.119-xnolibmil...................................................................................................................
251B.2.120-xnolibmopt.................................................................................................................
251B.2.121-xnorunpath.................................................................................................................
252B.2.122-xO[1|2|3|4|5]..............................................................................................................
252B.2.123-xopenmp[=i]................................................................................................................
254B.2.124-xP..................................................................................................................................
255B.2.125-xpagesize=n...............................................................................................................
255B.2.126-xpagesize_heap=n....................................................................................................
256B.2.127-xpagesize_stack=n..................................................................................................
256B.2.128-xpch=v..........................................................................................................................
257B.2.129=[file|
261B.2.131-xpentium.....................................................................................................................
262B.2.132-xpg................................................................................................................................
262B.2.133-xprefetch[=val[,val]]..............................................................................................
262B.2.134-xprefetch_auto_type=a..........................................................................................263B.2.135-xprefetch_level=l...................................................................................................
264B.2.136–xprofile=p.................................................................................................................
264B.2.137-xprofile_ircache[=path].......................................................................................267B.2.138-xprofile_pathmap....................................................................................................
267B.2.139-xreduction.................................................................................................................
268B.2.140-xregs=r[,r…].............................................................................................................
268B.2.141-xrestrict[=f]............................................................................................................
269B.2.142-xs..................................................................................................................................
270B.2.143-xsafe=mem...................................................................................................................
270B.2.144-xsb................................................................................................................................
270B.2.145-xsbfast.......................................................................................................................
270B.2.146-xsfpconst...................................................................................................................
271B.2.147-xspace..........................................................................................................................
271B.2.148-xstrconst...................................................................................................................
271B.2.149-xtarget=t....................................................................................................................
271B.2.150-xtemp=dir....................................................................................................................
274B.2.151-xthreadvar[=o].........................................................................................................
274B.2.152-xtime............................................................................................................................
275B.2.153-xtransition...............................................................................................................
275B.2.154-xtrigraphs.................................................................................................................
275B.2.155-xunroll=n...................................................................................................................
276B.2.156-xustr={ascii_utf16_ushort|no}.........................................................................276B.2.157-xvector[=a]...............................................................................................................
277B.2.158-xvis..............................................................................................................................
277B.2.159-xvpara..........................................................................................................................
278B.2.160-Yc,dir.........................................................................................................................
278B.2.161-YA,dir..........................................................................................................................
278B.2.162-YI,dir..........................................................................................................................
279B.2.163-YP,dir..........................................................................................................................
279B.2.164-YS,dir..........................................................................................................................
279B.2.165-Zll................................................................................................................................
279 16 OracleSolarisStudio12.2:C用户指南•2010年9月 目录 B.3传递给链接程序的选项...........................................................................................................
279 C实现定义的ISO/IECC99行为.........................................................................................................281C.1实现定义的行为(J.3)...............................................................................................................
281C.1.1转换(J.3.1).......................................................................................................................
281C.1.2环境(J.3.2)........................................................................................................................
282C.1.3标识符(J.3.3)....................................................................................................................
284C.1.4字符(J.3.4)........................................................................................................................
284C.1.5整数(J.3.5)........................................................................................................................
286C.1.6浮点(J.3.6)........................................................................................................................
286C.1.7数组和指针(J.3.7)...........................................................................................................
287C.1.8提示(J.3.8)........................................................................................................................
287C.1.9结构、联合、枚举和位字段(J.3.9)............................................................................288C.1.10限定符(J.3.10)...............................................................................................................
289C.1.11预处理指令(J.3.11).......................................................................................................
289C.1.12库函数(J.3.12)...............................................................................................................
290C.1.13体系结构(J.3.13)...........................................................................................................
295C.1.14语言环境特定的行为(J.4)..........................................................................................298 D支持的C99功能................................................................................................................................301D.1讨论和示例.................................................................................................................................
301D.1.1浮点计算器的精度.........................................................................................................
302D.1.2C99关键字.......................................................................................................................
303D.1.3__func__支持.................................................................................................................
303D.1.4通用字符名(UCN).........................................................................................................
303D.1.5使用//注释代码.............................................................................................................
304D.1.6禁止隐式int和隐式函数声明....................................................................................304D.1.7使用隐式int的声明.....................................................................................................
304D.1.8灵活的数组成员.............................................................................................................
305D.1.9幂等限定符......................................................................................................................
306D.1.10inline函数....................................................................................................................
306D.1.11Static及数组声明符中允许的其他类型限定符..................................................307D.1.12可变长度数组(VLA):...............................................................................................
307D.1.13指定的初始化函数.......................................................................................................
308D.1.14混合声明和代码...........................................................................................................
309 17 目录 D.1.15for循环语句中的声明................................................................................................
309D.1.16具有可变数目的参数的宏..........................................................................................309D.1.17_Pragma..........................................................................................................................
310 E实现定义的ISO/IECC90行为.........................................................................................................313E.1与ISO标准比较的实现............................................................................................................
313E.1.1转换(G.3.1).......................................................................................................................
313E.1.2环境(G.3.2).......................................................................................................................
314E.1.3标识符(G.3.3)..................................................................................................................
314E.1.4字符(G.3.4).......................................................................................................................
314E.1.5整数(G.3.5).......................................................................................................................
316E.1.6浮点(G.3.6).......................................................................................................................
317E.1.7数组和指针(G.3.7).........................................................................................................
319E.1.8寄存器(G.3.8)..................................................................................................................
319E.1.9结构、联合、枚举和位字段(G.3.9)...........................................................................319E.1.10限定符(G.3.10)..............................................................................................................
322E.1.11声明符(G.3.11)..............................................................................................................
322E.1.12语句(G.3.12)..................................................................................................................
322E.1.13预处理指令(G.3.13).....................................................................................................
322E.1.14库函数(G.3.14)..............................................................................................................
324E.1.15语言环境特定的行为(G.4).........................................................................................330 FISOC数据表示法..............................................................................................................................333F.1存储分配......................................................................................................................................
333F.2数据表示法..................................................................................................................................
334F.2.1整数表示法.......................................................................................................................
335F.2.2浮点表示法.......................................................................................................................
336F.2.3异常值................................................................................................................................
338F.2.4选定的数的十六进制表示.............................................................................................
339F.2.5指针表示............................................................................................................................
339F.2.6数组存储............................................................................................................................
340F.2.7异常值的算术运算..........................................................................................................
340F.3参数传递机制.............................................................................................................................
342F.3.132位SPARC......................................................................................................................
342F.3.264位SPARC......................................................................................................................
342 18 OracleSolarisStudio12.2:C用户指南•2010年9月 目录 F.3.3x86/x64...............................................................................................................................
342G性能调节............................................................................................................................................
345 G.1libfast.a库(SPARC)..............................................................................................................
345HK&RSolarisStudioC与SolarisStudioISOC之间的差异...........................................................347 H.1K&RSolarisStudioC与SolarisStudioISOC不兼容.........................................................347H.2关键字.........................................................................................................................................
352索引.....................................................................................................................................................