开局一张图,后面全靠查。这里最开始的那个选项是选择GCC编译的优化等级的,关于那个O2 O3 等优化了那些内容,推荐
https://www.cnblogs.com/wwcjj/p/9310671.html
-fsigned-char 换成有符号char
把char定义为有符号类型,如同signed char.
这个选项等同于`-fno-unsigned-char ',他是the negative form of `-funsigned-char'的相反选项.
-funsigned-bitfields 位域变成无符号数
如果没有明确声明`signed'或`unsigned '修饰符,这些选项用来定义有符号位域 (bitfield)或
无符号位域.缺省情况下,位域是有符号的,因为他们继承的基本整数类型,如int ,是 有符号数.
-ffunction-sections -fdata-sections
动态加载使用的方法和数据
-fno-common
GCC中文手册
即使未初始化的全局变量也分配在目标文件的bss 段,而不是把它们当做普通块(common block)
建立.这样的 结果是,如果在两个不同的编译结果中声明了同一个变量(没使用extern ),连接它
们时会产生错误. 这个选项可能有用的唯一情况是,你希望确认程序能在其他系统上运行,而其他系
统总是这么做.