0.C语言编译的步骤(Linux下):
①预处理:展开头文件,或添加或替换#开头的语句中的内容,会生成一个后缀名为.i的文件。(展开头文件)
②编译:将后缀名.i的文件翻译成汇编语言,生成一个后缀名.s的文件。(生成汇编代码)
③汇编:将.s的文件翻译成2进制码,生成一个.o后缀名的文件。(生成目标代码)
④链接:生成一个后缀名.elf的可执行文件。(链接库)
1.extern关键字修饰一个变量时,只声明变量,不为该变量分配内存,因为内存中没有这个变量所以extern关键字修饰的变量不能在声明是赋值。
2.#开头的语句是预处理语句,无需分号结束,宏定义的数字相当于常量,不允许修改。
3.const关键字修饰的变量为只读变量,即常量,不可以被修改。
4.在if语句中将常量放在左边更好,因为当判断条件的等式少一个‘=’时编译器会报错,这样有利于后期调试。
eg:如果我们想写的语句是: if(a==4) ,但是我们少写了一个‘=’就会变成 ->
if(a=4)//①先执行赋值操作②判断a的值是否为真 ,错误很隐蔽,代码量多了很难找到这个错误
但是如果我们写成: if(4==a) ,当我们少写了一个‘=’就会变成 ->
if(4=a)//①先执行赋值操作 ,左值为常量编译不过,能有效避免这类错误发生。
5.switch函数只能用于int和char,if();else if()语句可以判断int,char,double,字符串类型的变量。
6.sizeof()函数测的是一个数据类型的长度,不会因为结束符提前结束。
7.return用于结束一个函数,当在一个函数中调用return时这个函数会直接结束,如果实在main()函数中调用return则程序结束。
exit用于结束整个程序,不论是在程序哪个地方调用,只要调用则整个程序结束。