◆Parentheses:在某些情况下如果忽略了括号,编译器就发出警告。 ◆return-type:如果函数定义了返回类型,而默认类型是int型,编译器就发出警告。同时警告那些不带返回值的 return语句,如果他们所属的函数并非void类型。 ◆sequence-point:出现可疑的代码元素时,发出报警。 ◆Switch:如果某条switch语句的参数属于枚举类型,...
gcc的高级特性 gcc的高级特性 gcc的高级特性?00 2、预处理 #define 可以支持不定数量的参数。例子如下:#define err(...) fprintf(stderr,__VA_ARGS__)err("%s,%d\r\n","The error code:",48);扩展为:fprintf(stderr,"%s,%d\r\n","The error code:",48);gcc的命令行参数“-E”的作用是,...
-DMACRO=DEFN :定义宏MACRO为DEFN。 命令行中所有的"-D"开关都在"-U"之前进行处理。 -UMACRO :取消宏MACRO的定义。"-U"开关在所有的"-D"开关之后进行处理,但在"-include"和"-imacros"开关之前进行处理。 1. 2. 3. 2.1.4 常用警告信息相关选项 代码解读 -Wall :输出所有警告信息。该选项相当于同时...
等同于#define macro [def] 若[def]忽略不写,则macro等于1 -Umacro 取消宏的定义 等同于源代码中的#undef macro -v 显示制作gcc工具时的配置命令 显示预处理器、编译器的版本号 -Idir 将dir目录加入头文件搜索目录列表 优先在dir目录中查找包含的头文件 -Ldir 将dir目录加入库文件目录列表 优先在dir目录中查...
max-last-value-rtl 最大大小测量为可记录在伪寄存器的组合器表达式中的 RTL 数量,作为该寄存器的最后已知值。 默认值为 10000。 ggc-min-expand GCC 使用垃圾收集器来管理自己的内存分配。 此参数指定垃圾收集器堆在两次收集之间允许扩展的最小百分比。 调整此项可能会提高编译速度; 它对代码生成没有影响。
也是利用 -Dxxx=value的方式来定义 假如利用-DNAME="" (空)来定义一个宏,则这个宏也被视为被定义的,但是如果按值展开的话, 则为空; -Dmarco=3 相当于在源文件中的#define macro 3 -g 只是编译器,在编译的时候,产生调试信息。 -m 选择不同的硬件型号 或 配置 --- 例如, 68010 还是 68020, 有没有...
struct cpp_macro_arg GTY ((tag ("CPP_TOKEN_FLD_ARG_NO"))) macro_arg; /* Original token no. for a CPP_PASTE (from a sequence of consecutive paste tokens in a macro expansion). */ unsigned int GTY ((tag ("CPP_TOKEN_FLD_TOKEN_NO"))) token_no; ...
‘#’ is not followed by a macro parameter ‘#’后没有宏参数 ‘$’ in identifier or number ‘$’出现在标识符或数字中 ‘:’ without preceding ‘?’ ‘:’前没有‘?’ ‘?’ without following ‘:’ ‘?’后没有‘:’ 'return' with a value, in function returning void 在void返回类型的...
name=value -O -O0 -O1 -O2 -O3 -Os -Ofast -Og Preprocessor Options -Aquestion=answer -A-question[=answer] -C -dD -dI -dM -dN -Dmacro[=defn] -E -H -idirafter dir -include file -imacros file -iprefix file -iwithprefix dir -iwithprefixbefore dir -isystem dir -imultilib dir ...
17、一个 GCC 扩展 detected recursion whilst expanding macro %s 展开宏%s时检测到递归 division by zero in #if #if 中用零做除数 duplicate macro parameter %s 重复的宏参数“%s” embedding a directive within macro arguments is not portable 将一个指示嵌入宏参数中是不可移植的 empty character constant...