extern 和static的深入分析

本文详细探讨了C++中extern和static的关键字用法。extern用于声明变量,使得变量能在不同文件间共享,同时介绍了extern "C"在连接C库时的作用。而static则用于限制全局变量的作用域,确保在同一程序中变量名称的安全复用,并讨论了其在局部变量、函数和类成员中的特殊应用。最后,提出了在大型项目中合理使用extern和static的建议。
摘要由CSDN通过智能技术生成

static和extern功能简介

在进行大型项目时,大部分的全局变量都有static或extern这两个关键字修饰,extern可以声明变量,使同一个变量可以在不同的文件中重复利用,static修饰全局变量可以屏蔽其他文件对该文件中变量的访问,防止变量名称重复

extern的功能详细说明

  1. extern “C” void func(int a),被extern “C” 开头修饰的函数会以C的规则去编译C++的代码,这个功能几乎只存在于用C++去写C的库文件之中。
  2. extern int g_int,用extern修饰的变量就是的声明而未定义(注意:extern int g_int = 0 就是声明加定义了),这个常用于一下两种情况
    1. 在头文件中声明变量,这样多个cpp文件可以对头文件进行包含,且只要在一个头文件中对这个变量进行定义就可以了,合理的实现一个变量在多个文件中的重复利用。
    2. 在其他cpp文件中已经对某个变量进行了定义,其他文件可以使用extern 该变量,使该变量的作用范围扩展到这个文件之中。比如a.cpp文件中定义了int a = 5, 在b.cpp文件中只需要写上 extern int a,即可使a的作用域扩展到b.cpp文件中。
    3. 在代码风格良好的项目中,第二种情况不应该出现或很少出现,因该尽量将在多个cpp文件中使用的变量统一声明在.h文件中

static的详细用法

在C语言中,static 只有1,2,3三种用法,但C

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值