1. 概述
    1. GCC:GNU编译家庭
    2. GCC编译流程
      1. 预处理
      2. 编译
      3. 汇编
      4. 链接
    3. GCC支持多种语言的编译,它通过程序的扩展名可分辨出编写原始程序所用的语言
  2. GCC编译流程分析
    1. GCC基本语法格式:
      1. gcc [option | filename]
        1. 编译器根据option参数来实现强大的功能
        2. 根据文件的扩展名来采取相应的处理过程
    2. 预处理阶段
      1. “-E” 可以使编译器在预处理后,就停止编译
      2. “-o” 指定编译输出的结果
      3. “-i” 文件名扩展名,表示经过预处理过的C原始程序
    3. 编译阶段
      1. 此步骤首先要检查代码的规范性,以及是否有语法等错误,以确定下面要做的操作,检查无误后,开始把代码翻译成汇编语言
      2. “-S”:指编译器进行完编译后就停止,其生成物是汇编类型(.s类型文件)
    4. 汇编阶段
      1. 此阶段是把“.s”汇编文件生成目标文件(.o后缀的二进制目标代码)
      2. “-c” :指将汇编程序文件生成目标二进制文件(.o后缀)
    5. 链接阶段
      1. “-o” :此阶段将二进制目标文件转化成可执行的文件
  3. GCC警告提示
    1. 概念
      1. GCC包含了完整的出错检查和警告提示的功能,以便高质量代码的编写
    2. 分类
      1. Wall类警告提示
        1. 概述
          1. 此类警告占GCC警告选项的90%以上,不仅包括打开所有警告的功能,而且还可以单独对常见错误分别指定警告
        2. Wall类警告提示选项
          1. -Wall
          2. -Wchar-subscripts
          3. -Wcomment
          4. -Wformat
          5. -Wimplicit
          6. -Wmissing-braces
          7. -Wparentheses
          8. -Wsequence-point
          9. -Wswitch
          10. -Wunused-label
          11. -Wunused-function
          12. -Wunused-varibale
          13. -Wunused-value
          14. -Wunused-parameter
          15. -Wuninitalized
      2. 非Wall类警告提示
        1. 概述
          1. 最常用的有两种:“-ansi” 和"-pedantic"
        2. 常见提示选项
          1. “-ansi”
          2. 强制GCC生成标准语法所要求的告警信息
          3. “-pedantic”
          4. 此选项允许发出ANSI C标准所列的全部警告信息,同样也保证所有没有警告的程序都是符合ANSI C标准的。
  4. GCC使用库函数