在C语言中,extern关键字有以下几种用法:
- 声明外部变量:extern用于声明在其他文件中定义的全局变量。通过使用extern关键字,可以在当前文件中引用其他文件中定义的全局变量。
示例:
// File1.c int num; // 全局变量 // File2.c extern int num; // 声明全局变量num
- 声明外部函数:extern用于声明在其他文件中定义的函数。通过使用extern关键字,可以在当前文件中引用其他文件中定义的函数。
示例:
// File1.c int add(int a, int b) { return a + b; } // File2.c extern int add(int a, int b); // 声明函数add
- 在函数声明中使用外部存储类说明符:extern用于在函数声明中指定函数的存储类说明符为extern。这样做可以确保函数在链接时使用外部定义的函数,而不是当前文件中的定义。
示例:
extern int add(int a, int b); // 声明函数add为外部函数 int main() { int result = add(3, 4); // 调用外部函数add return 0; }
需要注意的是,extern关键字不仅适用于全局变量和函数的声明,还可以用于局部变量的声明。但是,在函数内部使用extern关键字声明局部变量时,该变量会被视为全局变量,而不是局部变量。这种用法并不常见,一般情况下不建议在函数内部使用extern关键字声明变量。