//C语言提供的关键字
// int char
// include define都不是关键字 它们属于预处理指令
//1.C语言提供的,不能自己创建关键字
//2.变量名不能是关键字
//auto- 自动的 每个局部变量都是自动的
//int mian()
//{
// {
// int a = 10;//自动创建 自动销毁的 -自动变量
// //auto 省略掉了
// //auto 在新的C语言语法中也有其他用法
// }
//
//
// return 0;
//}
//int main()
//{
// //计算机中数据可以存到 网盘 硬盘 内存 高速缓存 寄存器(存储空间依次减小,读写速度越来越快同时造价也越高)
// //大量频繁被使用的数据都会被放到寄存器中
// register int num = 100;//建议num的值存放在寄存器中
//
// return 0;
//}
//typedef 类型重命名
//typedef unsigned int u_int;//typedef 将 unsigned int 重新取了一个名字 u_int
u_int = unsigned int
//
//int main()
//{
// unsigned int num = 100;
// u_int num2 = 100;
// return 0;
//}
//static -静态的
//1.修饰局部变量,改变局部变量的生命周期(本质上是改变了变量的存储类型)
//2.修饰全局变量
//static修饰全局变量会使得这个全局变量只能在自己所在的源文件内部使用,其他源文件不能使用
//全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性
//但在被static修饰之后,就变成了内部链接属性,其他源文件不能链接到这个静态的全局变量了
//3.修饰函数
//static修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其他的源文件内部使用
//本质上,static是将函数的外部链接属性变成了内部链接属性(和static修饰全局变量是一样的)
//void test()
//{
// int a = 1;//a是局部变量 进入test范围a创建,出test范围a销毁
// a++;
// printf("%d", a);
//}
//
//int main()//结果是10个2
//{
// int i = 0;
// while (i<10)
// {
// test();
// i++;
// }
//
// return 0;
//}
//void test()
//{
// static int a = 1;//a是局部变量 进入test范围a创建,出test范围a销毁
// //static 修饰局部变量a使得a在出test范围后没有被销毁
// //a没有被销毁就会在后续的循环中存在,那么从第二次开始 static int a =10;就没有意义了
// a++;
// printf("%d", a);
//}
//
//int main()//结果为2 3 4 5 6 7 8 9 10 11
//{
// int i = 0;
// while (i < 10)
// {
// test();
// i++;
// }
//
// return 0;
//}
//extern声明外部符号
//extern int g_val;
g_val是全局变量,在整个工程中都可以使用
//
//int main()
//{
// printf("%d\n", g_val);
//
// return 0;
//}
//声明函数
extern int Add(int x, int y);
//extern int Add(int,int);的写法同样也可以
int main()
{
int a = 10;
int b = 20;
int sum = Add(a, b);
printf("%d\n", sum);
return 0;
}