自学内容网 自学内容网

c++ extern 关键字

概述

在C++中,extern关键字用于声明变量或函数是在其他文件或编译单元中定义的。这意味着使用extern声明的变量或函数不是在当前文件中创建的,而是在程序的其他部分定义的。使用extern可以避免在多个文件中重复定义相同的变量或函数,并且可以确保这些变量或函数在程序的不同部分保持一致。

以下是一些关于extern的关键点:

  1. 全局变量和函数:extern通常用于声明全局变量和函数,它们在程序的多个文件中共享。
  2. 链接:extern关键字告诉编译器,声明的变量或函数将在程序的其他地方定义。编译器将根据这些声明来链接到定义。
  3. 头文件:在头文件中使用extern可以避免在多个包含该头文件的源文件中重复定义相同的全局变量或函数。
  4. 作用域:extern声明的变量或函数的作用域是全局的,它们可以在程序的任何地方访问,只要它们被正确地声明和定义。
  5. 重定义问题:如果一个变量或函数在多个文件中使用extern声明,但只有一个文件中包含其定义,这是合法的。但如果在多个文件中都定义了相同的全局变量或函数,将会导致链接错误。
  6. 默认外部链接:在C++中,全局变量和函数默认具有外部链接,即使没有使用extern关键字,它们也可以在其他文件中访问。

变量的例子

extern int globalInt;  // 声明全局变量
extern const char* globalString;  // 声明全局常量字符串
#include <iostream>
#include "globals.h"

int main() {
    std::cout << "The value of globalInt is: " << globalInt << std::endl;
    std::cout << "The global string is: " << globalString << std::endl;

    return 0;
}

函数的例子

.h头文件

extern int add(int a, int b);
extern int multiply(int a, int b);

.cpp


#include <iostream>
#include "calculator.h"

int main() {
    int sum = add(5, 3);
    int product = multiply(4, 7);

    std::cout << "Sum: " << sum << std::endl;
    std::cout << "Product: " << product << std::endl;

    return 0;
}

小结

这2种情况是最常见的,我们经常看到这个关键字,特别是和c语言混用的时候。要特别注意。感兴趣,可以一起学习学习。OK,本篇结束,下周,写点新的内容。


原文地址:https://blog.csdn.net/Vjunjun/article/details/140254422

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!