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
#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//int a = 10;//局部变量--自动创建、自动销毁 int前省略了auto
//int---(signed) int 定义的变量是有符号的 通常省略signed
//unsigned int定义的变量无符号
//register int b = 0;//建议把b定义成寄存器变量
//struct - 结构体关键字
//union - 联合体/共用体关键字
typedef - 类型定义 - 类型重定义
//typedef unsigned int u_int;//把unsigned int重定义为u_int
//u_int num = 2;//无符号变量
//return 0;
//}
#include<stdio.h>
static修饰局部变量----局部变量生命周期变长
//
//viod test()
//{
// static int a = 1;//static使a变为一个静态的局部变量
// a++;
// printf("a=%d\n", a);//加static前,输出为22222 加static后,输出为23456
//}
//
//int main()
//{
// int i = 0;
// while (i<5)
// {
// test();
// i++;
// }
// return 0;
//}
extern - 声明外部符号
static修饰全局变量---改变了变量作用域,变得只能在自己所在源文件内部使用
//int main()
//{
//extern int g_val;//g_val 在源文件2定义的
//printf("g_val=%d\n", g_val);
//return 0;
//}
static修饰函数---改变了函数作用域,改变了函数的连接属性--外部连接属性->内部连接属性
//extern int Add(int x, int y);//在源文件2定义的,其前加static后,将连接不到
//int main()
//{
//int a = 10;
//int b = 20;
//int sum = Add(a, b);
//printf("sum=%d\n", sum);
//return 0;
//}
源文件2
//int g_val = 2020;//全局变量
//int Add(int x,int y)
//{
//int z = x + y;
//return z;
//}