C语言的文件类型:
.h 头文件
.c 源文件
.i 预处理文件
.o 目标文件
.s 汇编文件
.a 静态库文件
.so 动态库文件,相当于windows系统里的.dll
.gch 头文件的编译结果,没什么用,建议立即删除
C语言的基本数据类型:
为什么划分数据类型:
数据存储计算机中需要耗费存储空间(内存、硬盘),在编程语言中把数据按照使用范围、特点划分为不同的种类,根据要解决的问题选择合适的数据,这样可以节约存储空间、提高运算速度。
整型:不带小数点的数据
有符号整型:最高位的二进制位用来表示正负,0代表整数,1代表负责。
由于编程时使用的较多,所以编译器允许 signed 不加就代表加,可以省略。
signed char 1 -128 ~ 127
signed short 2 -32768 ~ 32767
signed int 4 -2147483648 ~ 2147483647
signed long 4|8
signed long long 8 -9223372036854775808 ~ 9223372036854775807
无符号整型:所以有二进制位都用来表示数据,因此只能表示正数。
在使用时 unsigned 关键字不能省略,所以比较麻烦,C语言的标准委员会为了我们方便使用无符号整型,在stdin.h头文件中对无符号整型进行了重定义。
uint8_t,uint16_t,uint32_t,uint64_t
unsigned char 1 255
unsigned short 2 65535
unsigned int 4 4294967295
unsigned long 4|8
unsigned long long 8 18446744073709551615
注意:signed long、unsigned long 在32位Linux系统下是4字节,64位Linux系统下是8字节。windows系统都是4字节。
浮点型:小数点是浮动,也就是带小数点的数据。
小数后六位有效,采用科学计算法存储,由:符号位+底数位+指针数构成,由于格式比较特殊所以在使用时需要进行格式转换,所以运算速度比整型慢,编程时尽量少用。
单精度:float 4
双精度:double 8
高精度:long double 12|16
if(0.000001 > f && f > -0.000001) // 判断"零值"
布尔:由于先出现的C语言,后有的布尔类型,所以在设计C语言时没有设计布尔类型,之后C语言以打补丁的方式增加了布尔类型。
使用布尔类型时需要包含stdbool.h头文件,才能使用 bool true false
bool 1字节
ture 4字节 ---->整数1
false 4字节 ---->整数0
printf("%d %d %d\n",sizeof(bool),sizeof(ture),sizeof(false));
用gcc编译器编译输出结果 1 4 4