在C语言中,可以使用关键字extern和static定义全局变量,它们的作用分别如下:
extern关键字定义全局变量使用extern关键字定义的全局变量实际上是在其他文件中定义的全局变量的声明。在当前文件中声明全局变量的时候,需要在变量定义前加上extern关键字,告诉编译器该变量在其他地方定义。示例如下:
// 共享全局变量定义在其他文件 extern int global_var; int main() { // 使用共享全局变量 global_var = 1; }
static关键字定义全局变量使用static关键字定义的全局变量是静态全局变量。它具有与全局变量相同的作用域,但只能被当前文件的函数访问,其他文件访问不到。示例如下:
// 静态全局变量 static int static_var; void function() { // 使用静态全局变量 static_var = 1; } int main() { // 使用静态全局变量 static_var = 2; }
需要注意的是,全局变量在程序运行后一直存在于内存中,因此应谨慎使用,并且尽量避免使用全局变量,以减少程序的耦合度和不必要的程序复杂性。