在Cc中怎么使用extern关键字
更新时间:2023-07-16什么是extern关键字?
extern是C和C++编程中的关键字,用于指示一个变量(或函数)是由另外一个文件定义的
C语言代码示例:
//File1.c #include<stdio.h> int x=10; void display(); int main() { extern int x; //declaring the variable 'x' as external variable printf("x value is: %d", x); display(); return 0; }
在上面的示例中,“x”被定义在File1.c文件中,但它被声明为“external variable”在main函数中,使用extern关键字。如果在main函数中未使用关键字extern,则编译程序将提示错误“链接程序失败,因为缺少定义”的类似错误。
C++代码示例:
//file1.cpp #include<iostream> int x=10; void display(); int main() { extern int x; //declaring the variable 'x' as external variable std::cout << "x value is: " << x << std::endl; display(); return 0; }
在上面的示例中,“x”被定义在File1.cpp文件中,但它被声明为“external variable”在main函数中,使用extern关键字。如果在main函数中未使用关键字extern,则编译程序将提示错误“链接程序失败,因为缺少定义”的类似错误。
如何使用extern关键字?
extern可用于以下两种情况下:
- 用于函数的声明
- 用于变量的声明
函数的使用:
extern可用于声明该函数可能会在另一个文件中定义。在此声明中,函数的返回类型不重要,因为它只是一个函数的声明,在所有定义中都必须相同。
//file1.cpp #include<iostream> extern void display(); //declaring function which defined in another file int main() { display(); return 0; }
//file2.cpp #include<iostream> void display(){ std::cout << "display function called ";}
在上面的示例中,“display()”函数在File2.cpp文件中定义,然后使用extern关键字进行声明。在main函数中调用display函数,编译程序将正确链接File1和File2.cpp文件,并输出“display function called”。
变量的使用:
用于声明变量时,extern关键字将指示该变量在该文件之外有定义。在声明中,必须指定变量的类型和名称。使用“extern”定义变量不会为该变量分配存储空间,仅用于表示该变量的定义可以在其他文件中找到。
//file1.cpp #include<iostream> extern int x; //declaring external variable 'x' which defined in another file int main() { std::cout << "x value is: " << x << std::endl; return 0; }
//file2.cpp #include<iostream> int x=10; //defining external variable 'x'
在上面的示例中,“x”被定义在File2.cpp文件中,但它被声明为“external variable”在File1.cpp文件中,使用extern关键字需要引用在其他文件中定义的变量,只需将引用的声明与实际的定义放在一起编译即可。
总结:
简而言之,extern关键字是在C和C++编程中用于指示另一个编译单元中存在的变量或函数。使用extern关键字,可以在一个文件中声明,在另一个文件中定义,以避免多次声明并减少代码复制。extern关键字可用于函数和变量的声明,并且在许多程序中非常常用。