在C语言中,extern
和static
关键字用于控制变量和函数的存储类别和可见性
extern
:
extern
关键字的变量或函数具有外部链接性,可以在其他源文件中访问。extern
声明一个变量或函数时,编译器会在链接阶段查找该变量或函数的定义。extern
声明同一个变量或函数,它们将共享同一个实例。static
:
static
关键字的变量或函数具有内部链接性,只能在定义它的源文件中访问。static
声明一个变量或函数时,它不会与其他源文件中的同名变量或函数发生冲突。static
声明同名的变量或函数,它们将分别在各自的源文件中生成独立的实例。总结:
extern
用于声明一个变量或函数,表示它在其他文件中定义,并允许在其他源文件中访问。static
用于限制变量或函数的可见性,使其仅在定义它的源文件中可见,避免命名冲突。