高级声明
1.声明(declarationg)与定义(definition)
为了使不同的文件都可以访问同一个变量,c会区分变量的声明和定义
1)变量的定义
① 会为这个变量分配存储空间,并且可能会为其指定一个初始化的值
② 一个变量的定义有且仅有一处
③ 定义实际上时一种特殊的声明
2)变量的声明
① 将变量的类型和名称传达给程序
② 声明的形式就是在变量的名字和类型前面,加上关键字“exrern”
③ 在一个程序中,可以多次声明同一个变量
例如:
extern int a; //声明语句,一个变量可以多次声明
extern int a;
int main(void)
{
a = 100;
printf("a = %d\n",a);
return 0;
}
int a; //定义,在程序中只能定义一次
2.typedef关键字的作用
//给一个类型定义一个新的名称(类型的别名)
//需要给某个类型定义别名时,只需要用该类型定义一个变量,然后在前面加上”typedef“,变量就不再是变量,而是该类型的别名。
#include <stdio.h>
#define b int
typedef int a; //a是int的别名
//typedef void (*p)(void); //p是void(*)(void)的别名
void fun2(void)
{
printf("world\n");
}
void fun1(void)
{
printf("hello\n");
}
int main(void)
{
int a1;
a a2;
// p p1,p2;
void(*p1)(void);
void(*p2)(void);
p1 = fun1;
p2 = fun2;
p1();
p2();
a1 = 10;
a2 = 20;
printf("a1 = %d,a2 = %d\n",a1,a2);
return 0;
}