Lines Matching refs:C
8 本规范包括C/C++/Java语言编译选项或系统配置,包括语言选项、警告选项、安全选项、总体选项、代码生成选项、架构选项、优化选项、编译宏等。
12 本规范规定了C/C++/Java语言在编译构建过程中需要添加的编译选项或系统配置,并对这些选项的作用进行了简单说明。此外,规范中对涉及到的例外场景也进行了阐释说明。
32 | C&C++ | LANG | 语言选项 | C&C++ | WARN | 警告选项 |
33 | C&C++ | SEC | 安全选项 | C&C++ | CDG | 代码生成选项 |
34 | C&C++ | OPT | 优化选项 | C&C++ | MD | 架构选项 |
35 | C&C++ | OVA | 总体选项 | C&C++ | LNK | 链接选项 |
36 | C&C++ | DBG | 调试选项 | C&C++ | PRE | 编译宏 |
37 | C&C++ | OTH | 其他 | JAVA | JAVAC | JAVAC |
52 ## C/C++语言编译选项
56 ##### G.C&C++.LANG.01 显式设置编译的语言标准
60 **【描述】** 按时间先后顺序,常用的ISO C标准包括:"-std=c90","-std=c99","-std=c11",对应的GNU扩展标准为"-std=gnu90","-std=gnu99"…
62 按时间先后顺序,常用的ISO C++标准包括:"-std=c++98","-std=c++11","-std=c++14","-std=c++1z",对应的GNU扩展标准为"-std=gnu++98…
64 "-ansi"对应ISO C标准"-std=c90"和ISO C++标准"-std=c++98"。
70 ##### G.C&C++.LANG.02 采用较新的语言标准
74 ##### G.C&C++.LANG.03 显式设置char的类型:"-fsigned-char"或"-funsigned-char"
82 ##### G.C&C++.LANG.04 对C++语言,禁止使用"-fpermissive"选项
86 **【描述】** 使用"-fpermissive"选项将C++代码中不符合标准的语法error降级成warning。不允许使用该选项,应采用符合标准的C++语法。
92 ##### G.C&C++.WARN.01 打开"-Wall"选项,检查有用的警告选项集
98 ##### G.C&C++.WARN.02 打开"-Wextra"选项,检查除"-Wall"外附加的选项集;"-Wextra"中误报较多的选项,可以使用"-Wno-XXXX"屏蔽
108 ##### G.C&C++.WARN.03 打开"-Weffc++"选项,检查Scott Meyers’ Effective C++选项
112 **【描述】** "-Weffc++":Scott Meyers’ Effective C++对应的警告选项集。
116 ##### G.C&C++.WARN.04 禁止使用"-w"选项屏蔽所有警告
122 ##### G.C&C++.WARN.05 禁止使用"-Wno-XXXX"抑制"-Wall"包含的所有警告选项
128 ##### G.C&C++.WARN.06 禁止使用"-Wno-error= XXXX"选项将已指定的升级错误的警告再次降级成警告
134 ##### G.C&C++.WARN.07 避免使用"-Wno-XXXX"抑制编译器缺省打开的编译警告选项
146 ##### G.C&C++.WARN.08 使用"-Werror"、"-Werror=XXXX"选项把警告当错误处理
158 ##### G.C&C++.WARN.09 同一构建工程中,统一编译警告选项。
166 ##### G.C&C++.WARN.10 打开"-Wtrampolines"选项,避免内嵌函数生成trampoline
201 ##### G.C&C++.WARN.11 打开"-Wformat=2"选项,检查格式化输入/输出函数的安全
217 ##### G.C&C++.WARN.12 打开"-Wstrict-prototypes "选项,避免函数在声明或定义中没有指定参数类型
242 相关文档:《SEI CERT C Coding Standard》DCL07-C. Include the appropriate type
247 ##### G.C&C++.WARN.13 打开"-Wdate-time"选项,避免使用时间宏,确保二进制一致性
274 ##### G.C&C++.WARN.14 打开"-Wfloat-equal"选项,避免浮点数相等比较运算
278 …情况下是近似值,不能精确判断是否相等。浮点数相等或不相等比较是不安全的行为,建议通过判断两数之差的绝对值是否小于可接受误差来判断浮点数是否相等,可以使用C语言标准库函数fabs()求两浮点数之差的…
328 ##### G.C&C++.WARN.15 打开"-Wswitch-default"选项,确保switch语句有default分支
362 ##### G.C&C++.WARN.16 打开"-Wshadow"选项,检查变量覆盖
366 **【描述】** "-Wshadow":局部变量覆盖全局变量、函数参数等产生的警告。C++语言打开该选项警告较多,团队可以根据实际情况评估是否打开该选项。
388 ##### G.C&C++.WARN.17 打开"-Wstack-usage=len"选项,设置栈大小,避免栈溢出
412 ##### G.C&C++.WARN.18 打开"-Wframe-larger-than=len" 选项,设置栈框架大小,避免栈溢出
436 ##### G.C&C++.WARN.19 不建议打开“-Wno-return-local-addr“选项,检查返回局部变量地址
462 ##### G.C&C++.WARN.20 打开"-Wconversion"选项,避免隐式转换改变数值
489 ##### G.C&C++.WARN.21 打开"-Wcast-qual"选项,指针类型强制转换时,避免目标类型丢失类型限定词
516 ##### G.C&C++.WARN.22 打开“-Wcast-align”选项,检查指针类型强制转换,避免目标所需的地址对齐字节数增加
524 ##### G.C&C++.WARN.23 打开“-Wvla”选项,避免变长数组
549 ##### G.C&C++.WARN.24 打开“-Wunused”选项,避免无效代码
588 ##### G.C&C++.WARN.25 打开“-Wundef ”选项,避免预编译指令\#if语句中出现未定义的标识符
613 ##### G.C&C++.WARN.26 打开“-Wnon-virtual-dtor”选项,避免基类析构函数没有定义虚函数
642 ##### G.C&C++.WARN.27 打开“-Wdelete-non-virtual-dtor”选项,当基类析构函数没有定义虚函数时,避免通过指向基类的指针来执行删除操作
673 ##### G.C&C++.WARN.28 打开"-Woverloaded-virtual"选项,避免隐藏基类虚函数
702 ##### G.C&C++.SEC.01 打开栈保护选项
762 ##### G.C&C++.SEC.02 打开地址随机化选项
854 ##### G.C&C++.SEC.03 打开GOT表重定位只读选项
888 ##### G.C&C++.SEC.04 打开堆栈不可执行/数据执行保护选项实现堆栈不可执行保护
918 ##### G.C&C++.SEC.05 使用-s选项或者strip工具去除符号表
960 ##### G.C&C++.SEC.06 禁止使用Run-time Search Path选项
978 ##### G.C&C++.SEC.07 打开代码段/数据段写保护选项
996 ##### G.C&C++.SEC.10 启用FORTIFY_SOURCE编译宏来打开FS选项
1032 ##### G.C&C++.SEC.11 打开ftrapv选项来检测整数溢出
1048 ##### G.C&C++.SEC.13 打开栈检查选项
1088 ##### P.C&C++.01 在实测的基础上,选择合适优化等级和各种优化选项
1092 ##### G.C&C++.OPT.01 优化等级建议选"-O2"、"-Os"、"-O3"
1096 ##### G.C&C++.OPT.02 当代码中存在较多的不同类型指针互转时,使用"-fno-strict-aliasing"选项关闭严格别名优化
1105 ##### G.C&C++.OPT.03 X86/ARM架构下,基于DOPRA平台的产品建议使用"-fno-omit-frame-pointer"选项关闭去SFP(Stack Frame Point…
1119 ##### G.C&C++.CDG.01 未初始化的全局变量放置在目标文件的数据段:"-fno-common"
1125 ##### G.C&C++.CDG.02 将结构体放在寄存器中直接返回:"-freg-struct-return"
1139 ##### G.C&C++.CDG.03 设置默认的ELF镜像中符号的可见性为隐藏:"-fvisibility=hidden"
1145 ##### G.C&C++.CDG.04 启用表达式计算顺序强化规则: “-fstrong-eval-order”
1149 **【描述】** "-fstrong-eval-order":按C++17的规格确定子表达式之间的计算顺序,比如表达式
1156 ##### G.C&C++.OVA.01 打开总体选项:"-pipe"
1166 ##### G.C&C++.MD.01 对于嵌入式软件,显式指明如下架构选项
1178 ##### G.C&C++.LNK.01 打开如下链接选项:"-Wl,-Bsymbolic"、"-rdynamic"、" -Wl,--no-undefined"
1191 ##### G.C&C++.DBG.01 对于版本发布构建,禁止携带调试信息
1206 ##### G.C&C++.PRE.01 明确-D编译宏的具体用途,建立-D编译宏的清单
1217 ##### G.C&C++.OTH.01 同一构建工程中,避免使用重复的或包含关系的编译选项
1235 ##### G.C&C++.OTH.02 避免使用相反冲突的选项
1254 ##### G.C&C++.OTH.03 编译选项的编写顺序:优化等级(如-O2)+总体选项+警告选项+语言选项+代码生成选项+架构选项(MD-Dependent Options)+优化选项+安全编…