1.文件后缀名
.c c语言源代码
.h 程序所包含的头文件
.i 已经预处理过的C源代码文件
.s 汇编语言源代码文件
.o 编译后的目标文件
2.运行C语言命令
gcc test.c -o test
./test
注意: 1.gcc test.c 会默认生成a.out
2.gcc test.c -wall 会写出警告
3.gcc -e define.c 预生成文件,就是#define定义的常量变成实际数字
gcc -e define.c -o define 预生成文件的同时生成执行文件
1.数据类型32位下
逻辑类型: true,false
整数类型: char(1字节),short(2字节),int(4字节),long(8字节)
浮点类型: float(4字节),double(8字节)
void类型: 不确定类型,万能类型,结合指针(void *)用在指针指向的内存。
2.bool头文件#include<stdlbool.h>
3.常量:
3.1整型常量: 运行期间不可变化
八进制前缀:0 十六进制前缀:0x
3.2浮点常量: 有小数
3.3指数常量: 通常表示特别大或特别小的数
1.176e+10 表示 1.176×1010
- 3.5789e-8 表示 -3.5789×10-8
3.4字符常量
a='F';b='H'+7;
3.5字符常量
"HELLO" 一共占6单位,最后一个为'/0'
3.6标识常量: #define max 100;
ps:原样替换,所以需要带括号
4.变量:
4.1命名
(1)由字母、数字、下划线组成,不能以数字开头,不能和C的关键字重名
(2)变量占据存储空间的大小由其数据类型决定
(3)变量在内存空间中的首地址,称为变量的地址
4.2变量的存储类型
(1)auto: auto int a; 等价 int a;
此处的a是随机的;注意范围,离开函数就实效
(2)registr: 称为寄存器型,思想将变量放入CPU的寄存器中,这样可以加快程序的运行速度。
但是也不能全放寄存器,寄存器不够用.
register变量必须是一个单个的值,并且长度应该小于或者等于整型的长度。
不能用“&” 来获取register变量的地址。
(3)static: 静态随机变量
例子: int main{
int i=0;
while(i<5){
static int a=0;
a++;i++;printf("%d\t",a);
}}
结果为: 1 2 3 4 5原因是static只要不失效,就一直会记着上次的值
static变量修饰局部变量,(1)变量在内存中以固定值存放,不在堆栈,(2)只要程序没结束,就不会失效
(4)extern: 外部参照引用型
例子: (1)main1.c
int a=0;
(2)main.c
extern int a;
int main(){
printf("%d",a);
}
结果为0;main.c使用main1.c的extern类型
注意:一般来说,函数定义在main.c文件(主程序中),在其他文件使用,比如GPIO.c中
5.输入规则
d: 十进制整数,x: 十六进制整数,o:八进制整数 ,e: 科学计数法,f: 浮点数