c++中extern关键字详解

在C++中,extern关键字用于指示一个变量或函数在其他文件中定义或声明。extern可以用于以下三种情况:

  • 外部变量的声明:当在一个源文件中定义了一个全局变量,在另一个源文件中想要使用该全局变量时,需要在使用的源文件中声明该变量。这时可以在声明中使用extern关键字。例如:

    // file1.cpp
    int global_var = 10;
    
    
    // file2.cpp
    extern int global_var; // 声明global_var,告诉编译器它在其他源文件中定义
    void foo() 
    { 
      std::cout << global_var; 
    }
  • 外部函数的声明:当在一个源文件中定义了一个函数,在另一个源文件中想要调用该函数时,需要在使用的源文件中声明该函数。这时可以在声明中使用extern关键字。例如:

    // file1.cpp
    void my_function() 
    { 
      std::cout << "Hello, world!"; 
    }
    
    
    // file2.cpp
    extern void my_function(); // 声明my_function,告诉编译器它在其他源文件中定义
    void foo() 
    { 
      my_function(); 
    }
  •  外部变量的定义:当在一个源文件中声明了一个全局变量,在另一个源文件中定义该变量并分配存储空间时,需要在定义中使用extern关键字。这时定义中不需要初始化变量,只需要指定类型和名称即可。例如:
    ​// file1.cpp
    extern int global_var; // 声明global_var,告诉编译器它在其他源文件中定义
    void foo()
    { 
      std::cout << global_var; 
    }
    
    
    // file2.cpp
    int global_var = 10; // 定义global_var,并分配存储空间
    
    ​

  需要注意的是,extern关键字只是告诉编译器某个变量或函数在其他文件中定义或声明,而不是定义或声明它们。因此,extern关键字通常与声明一起使用,用于在一个源文件中引用另一个源文件中定义的变量或函数。

  总之,extern关键字在C++中用于指示一个变量或函数在其他文件中定义或声明,是实现跨源文件编程的重要工具之一。

你可能感兴趣的:(C++,c++,开发语言)