目录
1、C代码变成可执行程序的过程
预处理:查看宏函数的预处理结果,检查宏函数
gcc -E
编译:理解C代码的底层原理、函数重载
gcc -S
汇编:生成代码库,静态库、共享库
gcc -c
链接:多文件编程的基础
gcc a.o b.o c.o ...
2、gcc编译器常用参数
-E -S -c -std=gnu99 -o -I -l -Wall -Werror -D(命令行定义宏)
3、C语言文件类型
.h .h.gch .c .i .s .o .a(静态库) .so(共享库)
4、数据类型
signed char 1 %hhd -128 ~ 127
signed short 2 %hd -32768 ~ 32767
signed int 4 %d ±21亿
signed long 4/8 %ld
signed long long 8 %lld ±9开头的19位整数
unsigned char 1 %hhu 0 ~ 255
unsigned short 2 %hu 0 ~ 65535
unsigned int 4 %u 0 ~ 40亿
unsigned long 4/8 %lu
unsigned long long 8 %llu 0 ~ 1开头的20位整数
float 4 %f
double 8 %lf
long double 12/16 %LF
小数点后6位有效
问题:假设有flaot x; 如何判断x与零值是否相等
if(x < 0.000001 && x > -0.000001)
5、C变量名取名规则
1、必须由字母、数字、下划线组成
2、必须由字母、下划线开头
3、不能与32个关键词重名
4、见名知意
6、变量输入输出
printf 提示信息 + 占位符 + 变量名列表
scanf 占位符 + 变量地址列表
%nd %-nd %0nd %n.mf(5舍6入) %g
7、运算符
/ % 除数不能为0,错误信息:浮点数例外(核心已转储)
== 变量尽量在右边
++/-- 尽量不要一行中多次使用
&& || 具有短路特性
注意:运算符存在优先级
8、类型转换
自动类型转换:不同类型数据之间需要先转换为相同的类型数据才能进行运算
1、字节少的向字节多的转
2、有符号的向无符号的转
3、整型向浮点型转
注意:以不丢失数据为基础,适当地牺牲空间
强制类型转换:
(新类型)数据 有丢失数据风险,谨慎使用
C