文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C++ extern的妙用

2024-11-30 05:00

关注

一、extern关键字的基础知识

在C++中,extern关键字主要用于声明一个变量或函数的作用范围(scope)是全局的。当我们在一个源文件中使用extern关键字声明一个变量或函数时,其他源文件就可以访问和修改这个变量或函数。

二、extern关键字的典型用法

1. 共享全局变量

使用extern关键字可以方便地在多个源文件中共享全局变量。在定义全局变量时,我们只需要在一个源文件中使用extern关键字声明它,然后在其他源文件中使用相同的变量名访问它。

例如,假设我们有一个全局变量int globalVar;,在文件main.cpp中使用extern关键字声明它:

// main.cpp  
extern int globalVar;  
  
int main() {  
    globalVar = 10; // 在这里修改全局变量  
    return 0;  
}

然后在另一个源文件global.cpp中定义这个全局变量:

// global.cpp  
#include   
  
int globalVar; // 在这里定义全局变量  
  
int main() {  
    std::cout << "Global variable value: " << globalVar << std::endl; // 在这里打印全局变量的值  
    return 0;  
}

编译这两个源文件,然后运行它们,你会发现两个程序都成功地修改和访问了全局变量。

2. 共享函数

使用extern关键字也可以方便地在多个源文件中共享函数。在定义函数时,我们只需要在一个源文件中使用extern关键字声明它,然后在其他源文件中使用相同的函数名调用它。

例如,假设我们有一个函数void myFunction();,在文件main.cpp中使用extern关键字声明它:

// main.cpp  
extern void myFunction(); // 在这里声明函数  
  
int main() {  
    myFunction(); // 在这里调用函数  
    return 0;  
}

然后在另一个源文件global.cpp中定义这个函数:

// global.cpp  
#include   
#include "main.cpp" // 引入main.cpp文件,使得myFunction在main.cpp中也被声明为extern  
                   // 这样我们就可以在main.cpp中使用myFunction了。注意这种做法并不推荐,因为这破坏了模块化设计原则。这只是一种使用方法,而不是推荐的最佳实践。最佳实践应该是在一个头文件中声明和定义函数,然后在需要的地方包含这个头文件。  
void myFunction() { // 在这里定义函数  
    std::cout << "Hello, world!" << std::endl; // 在这里打印一条消息  
}

编译这两个源文件,然后运行它们,你会发现两个程序都成功地调用了这个共享的函数。

三、extern关键字的注意事项

在使用extern关键字时,有几个要注意的事项。

四、总结

使用extern关键字可以方便地在多个源文件中共享变量和函数,使得代码更加模块化和易于维护。但是需要注意遵守命名规范和使用全局变量的谨慎,以避免出现意外的问题。

来源:鲨鱼编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯