c语言编程笔录

首页 >   > 笔记大全

笔记大全

在Cc中怎么使用extern关键字

更新时间:2023-10-15

什么是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关键字可用于函数和变量的声明,并且在许多程序中非常常用。