changjianguanjianzi.c
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>//预处理指令
//C语言提供的关键字
//1、C语言提供的,不能自己创建关键字
//2、变量名不能是关键字
//typedef unsigned int u_int;//类型重命名,给这个变量去一个其他名字
//int main()
//{
// //int char;
// //{
// //int a = 10;//自动创建,自动销毁 - 自动变量
//
//
// //}
//
// //register int num = 100;//建议num的值存放到寄存器中,大量频繁被使用的数据,想放在寄存器中,提升效率
//
// unsigned int num = 100;
// u_int num2 = 100;
//
// return 0;//常见关键字
//}
//static - 静态的
//1.static修饰局部变量
//2.static修饰全局变量
//3.static修饰函数
//void test()
//{
// static int a = 1;//static修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型)
// a++;
// printf("%d", a);
//}
//
//int main()
//{
// int i = 0;
// while (i < 10)
// {
// test();
// i++;
// }
//
// return 0;
//}
//extern 声明外部符号的
//extern int g_val;
//int main()
//{
//
// printf("%d\n", g_val);
// return 0;
//}
//声明函数
extern int Add(int x, int y);
int main()
{
int a = 10;
int b = 20;
int sum = Add(a, b);
printf("sum = %d\n", sum);
return 0;
}
add.c
#define _CRT_SECURE_NO_WARNINGS 1
int g_val = 2022;//全局变量,在整个工程中都可以使用
//static int g_val = 2022;//static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用
//全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性
//但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了!
static int Add(int x, int y)//static修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用
//本质上: static是将函数的外部链接属性变成了内部链接属性!(和static修饰全局变量一样!)
{
return x + y;
}