在C语言中,extern
和static
是两种不同的存储类说明符,它们分别具有不同的作用和用途。
extern
是一个链接类型说明符,用于声明外部变量或函数。当在一个源文件中使用extern
声明一个变量或函数时,它告诉编译器该变量或函数的定义在其他源文件中,并且在链接阶段需要找到这个定义。如果没有找到定义,编译器会报错。
static
是一个存储类说明符,用于声明静态变量或函数。静态变量和函数的作用域仅限于定义它们的源文件,在其他源文件中无法访问。此外,静态变量在程序运行期间只会被初始化一次,并且在程序运行期间一直保持其值,直到程序结束。
因此,extern
和static
存储类说明符不能一起使用,因为它们的作用和用途相互矛盾。如果在同一个变量或函数声明中同时使用extern
和static
,编译器会报错。
如果需要在多个源文件中共享一个变量或函数,可以在一个源文件中定义它,并在其他源文件中使用extern
声明。如果只需要在当前源文件中使用一个变量或函数,可以使用static
存储类说明符。
领取专属 10元无门槛券
手把手带您无忧上云