【无标题】

2021.12.6

预处理( gcc -E hello.c -0 hello.i)

  • 头文件展开 --不检查语法 可展开任意文件
  • 宏定义替换
  • 条件编译展开
  • 注释移除

编译 ( gcc -S hello.i -0 hello.s)

  • 将程序翻译成汇编指令
  • 逐行检查语法 (最耗时的过程)

汇编 ( gcc -c hello.s -0 hello.o)

  • 将汇编指令翻译成对应的二进制编码

链接( gcc hello.c -0 hello.exe)

  • 数据段隐蔽
  • 数据地址回填
  • 库引入

变量的定义和 变量的声明

定义开辟内存空间 , 声明不会;

在变量使用之前,如果没有变量定义,编译器会找寻最近的一个变量声明,提升为变量定义. 含extern的变量声明无法提升.

格式匹配符

  • int %d
  • short %hd
  • long%ld
  • long long%lld
  • unsigned int %u
  • unsighed short %hu
  • unsighed short %lu
  • unsighed short %llu
  • char %c
  • string %s
  • float %f
  • double %lf

printf("%08.5f",5.66666666667);

  • .5表示取五位小数
  • 8表示从左到右取八位展示
  • 0 表示数据数量小于八位用0填充 "."小数点也算一位. 默认是用空格
    05.66667
上一篇:翻车小项目继续


下一篇:#459D-Pashmak and Parmida's problem