关键字
C语言中一共有32个关键字,每个都有特定的含义,是程序必不可少的部分,这些关键字是规定好了的,因此不能把关键字用来定义变量名。下面列出所有的关键字:
auto,break,case,char,const,continue,default,do,double,
else,enum,extern,float,for,goto,if,int,long,register,
return,short,signed,sizeof,static,struct,switch,typedef,
union,unsigned,void,volatile,while
常见关键字
typedef
此关键字是类型定义关键字,可以理解为给其它关键字起别名,例如:
typedef unsigned int unint;
这条句的作用就是,将
unsigned int
这条较长的关键字重新命名,后续就可以使用
uint_32
来代替,然而起到的效果却是一样的,这样在后续写代码的过程中可以省下不少的功夫。
static
1)修饰局部变量,使局部变量的生命期延长至整个程序的存在时间。也可以理解为,在程序中结束一个函数后,在此函数中被该关键字修饰的变量不会被释放掉,等到再次调用该函数时,被修饰变量仍保持着上一次函数结束时的状态。调用下面这段函数,观察i和j的输出值,就能体会到其中的含义。
#include <stdio.h>//添加头文件 #include <stdlib.h> void test() { //定义局部静态变量 int j=0; static int i = 0; i++; j++; printf("i=%d j=%d\n", i,j); } //主函数,函数入口 int main() { //利用循环调用十次函数 for (int i = 0; i < 10; i++) { test(); } return 0; }
2)修饰全局变量:经static修饰过得全局变量将不能再在其它源文件中进行使用。
3)修饰函数:经static修饰的函数也将不能在其它源文件中进行使用,编译会报错。
#define
在前提到过该关键字,但是它的本质其实是做简单的文本替换,但是虽然好用,却也存在着缺陷,如下:
#include <stdio.h>//添加头文件 #include <stdlib.h> //宏定义 #define ADD(x, y,z) x + y*z int main()//主函数,函数入口 { //调用宏 int sum = ADD(2, 3,4); printf("%d\n", sum); return 0; }
若是宏定义一个计算表达式,因为它只是简单的文本替换,那么他是不会判定你算术运算符的优先关系的,所以在使用的时候一定要注意。
浙公网安备 33010602011771号