主要内容:
1 常见关键字
2 define 定义的常量和宏
1.常见关键字
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
注意 :自己定义的函数不能和关键字一样
介绍几个关键字
1 关键字 typedef
typedef 就是类型定义,即类型重命名。
例如:
//将unsigned int 重命名为unint_1,所以unint_1也是一个类型名
typedef unsigned int unint_1;
int mian()
{
unsigned int a = 0;
unint_1 b = 0;
//a和b这两个变量的类型是一样的
return 0;
}
可以用于将复杂的类型名称进行简化
2 关键字static
在C语言中:
static 是用来修饰变量和函数的
1.修饰局部变量---静态局部变量(改变局部变量的生命周期)
正常情况下局部变量在出代码块({})是会自动销毁
#include<stdio.h>
void test()
{
int i = 0;
i++;
printf("%d", i);
}
int main()
{
int i = 0;
for (i = 0;i < 10;i++)
{
test();
}
return 0;
}
运行结果:
由于局部变量在出代码块({})以后会自动销毁,局部变量 i 的值不会进行累加
在 static 修饰情况下
#include<stdio.h>
void test()
{
static int i = 0;
i++;
printf("%d", i);
}
int main()
{
int i = 0;
for (i = 0;i < 10;i++)
{
test();
}
return 0;
}
运行结果:
结论:
static 修饰局部变量改变了生命周期,让静态局部变量出了作用域依然存在,直到程序结束,生命周期才结束。
2.修饰全局变量---静态全局变量(改变全局变量的作用域)
正常情况下全局变量不受代码块({})的限制,可以在外部文件内部使用
运行结果:
在 static 修饰全局变量以后,改变了全局变量的作用域,只可以在内部文件内使用
运行结果:
链接错误
结论:
一个全局变量被 static 修饰,使得这个全局变量只能在本源文件内使用,
不能在其他源文件内使用。
3.修饰函数---静态函数(改变函数的连接属性)
正常情况下函数只需要在外部源文件中进行函数声明即可在外部源文件中使用,但 static 修饰以后会改变函数的连接属性
运行结果:
连接错误
结论:
一个函数被 static 修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
2 #define 定义常量和宏
//define 定义标识符常量
#define MAX 1000
//define 定义宏
#define ADD(x,y) ((x)+(y))
#include<stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum= %d\n",sum);
sum = 10*ADD(2, 3);
printf("sum = %d\n",sum);
return 0;
}
运行结果:
今天就到这里了。