C++ extern关键字
首先,一个文件中的变量或者函数,它的可视范围只在这个文件中,其他文件是不会知晓定义在另一个文件中的变量和函数的。
extern
关键字的作用就是,告知编译器,这里有一个变量或者函数的声明,它的定义你得去其他合作者那里去找。这就是所有了。
C++或者C是一个组合多文件进行合作编程的语言。他们的合作是由编译器进行组织的。所以我们会发现编译器玩的是 .cpp
文件。
并且,如果我们需要使用一个变量或者函数,它必须在这个 .cpp
文件中有它的声明(declaration),才可以使用,这是前提,当然他也一定要相关的有定义(definition)。
每一个 .cpp
文件(包含着许多变量和函数的定义)都自成体系,可以被编译成 库文件(二进制文件), 完成了从 ASCII 到 二进制的升华,便于其他文件的使用,而使用说明书被抽象成 .h
。
比较关键的是
int i; // 既是声明也是定义
int j = 1; // 既是声明也是定义
void int add(int a, int b); // 只是声明
代码
TestExtern
|____ main.cpp
|____ other.cpp
|____ CMakeLists.txt
// main.cpp
#include<iostream>
extern int a;
int main(){
std::cout<< a << std::endl;
return 0;
}
// other.cpp
int a = 5;
# CMakeLists.txt
cmake_minimum_required(VERSION 3.14)
project(testExtern)
add_executable(testExtern main.cpp other.cpp)
other.cpp
被编译成 静态库 或者 动态库 链接到 main.cpp
上也可以执行。
大模型时代,文字创作已死。2025年全面停更了,世界不需要知识分享。
如果我的工作对您有帮助,您想回馈一些东西,你可以考虑通过分享这篇文章来支持我。我非常感谢您的支持,真的。谢谢!
作者:Dba_sys (Jarmony)
转载以及引用请注明原文链接:https://www.cnblogs.com/asmurmur/p/17574862.html
本博客所有文章除特别声明外,均采用CC 署名-非商业使用-相同方式共享 许可协议。
分类:
C++ LAB
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律