当前位置: 首页 > wzjs >正文

四川手机网站建设费用wordpress秒开优化

四川手机网站建设费用,wordpress秒开优化,怎么注册网站域名备案,网页版游戏在线玩无需登录C中extern关键字的完整用法总结 extern是C中管理链接性(linkage)的重要关键字,主要用于声明外部定义的变量或函数。以下是详细的用法分类和完整示例: 一、基本用法 1. 声明外部全局变量 // globals.cpp int g_globalVar 42; …

C++中extern关键字的完整用法总结

extern是C++中管理链接性(linkage)的重要关键字,主要用于声明外部定义的变量或函数。以下是详细的用法分类和完整示例:

一、基本用法

1. 声明外部全局变量

// globals.cpp
int g_globalVar = 42;  // 实际定义// other.cpp
extern int g_globalVar;  // 声明使用外部变量void foo() {std::cout << g_globalVar;  // 访问globals.cpp中定义的变量
}

2. 声明外部函数

// utils.cpp
void utilityFunction() { /*...*/ }// main.cpp
extern void utilityFunction();  // 声明外部函数(extern可省略)int main() {utilityFunction();
}

二、规范的头文件用法

1. 共享全局变量(推荐方案)

// config.h
#pragma once
extern int g_configValue;  // 只放声明// config.cpp
#include "config.h"
int g_configValue = 100;  // 实际定义// user.cpp
#include "config.h"  // 包含声明void useConfig() {g_configValue = 200;  // 修改共享变量
}

2. 共享常量

// constants.h
#pragma once
extern const double PI;  // 声明// constants.cpp
#include "constants.h"
const double PI = 3.1415926;  // 定义// geometry.cpp
#include "constants.h"double circleArea(double r) {return PI * r * r;  // 使用常量
}

三、C/C++混合编程

1. 包含C头文件

// c_wrapper.h
#pragma once
#ifdef __cplusplus
extern "C" {
#endifvoid legacy_c_function(int param);#ifdef __cplusplus
}
#endif// user.cpp
#include "c_wrapper.h"void modern_cpp_function() {legacy_c_function(42);  // 调用C函数
}

2. 导出C++函数给C使用

// mylib.h
#ifdef __cplusplus
extern "C" {
#endifvoid exportedFunction();#ifdef __cplusplus
}
#endif// mylib.cpp
#include "mylib.h"
void exportedFunction() {  // 用C链接方式导出// C++实现
}

四、模板显式实例化(C++11+)

// templates.h
#pragma once
template<typename T>
class DataHolder {// 模板定义
};// templates.cpp
#include "templates.h"
template class DataHolder<int>;  // 显式实例化// user.cpp
#include "templates.h"
extern template class DataHolder<int>;  // 声明使用外部实例化void foo() {DataHolder<int> holder;  // 使用预实例化的模板
}

五、特殊用法

1. 跨文件共享数组

// data.h
#pragma once
extern const char* const ERROR_MESSAGES[];// data.cpp
#include "data.h"
const char* const ERROR_MESSAGES[] = {"Success","Invalid input","Out of memory"
};// logger.cpp
#include "data.h"void logError(int code) {std::cerr << ERROR_MESSAGES[code];
}

2. 条件性外部声明

// shared.h
#pragma once
#ifdef USE_EXTERNAL_CONFIG
extern int g_config;
#else
int g_config = 0;
#endif// config_provider.cpp
#define USE_EXTERNAL_CONFIG
#include "shared.h"
int g_config = 42;  // 实际定义// config_user.cpp
#include "shared.h"  // 自动获取extern声明

最佳实践建议

  1. 变量定义与声明分离

    • 定义放在.cpp文件
    • 声明放在.h文件(用extern)
  2. 命名规范

    • 全局变量加前缀(如g_)
    • 常量使用全大写
  3. 避免污染全局命名空间

    // 更好的方式
    namespace Project {extern int g_sharedVar;
    }
    
  4. C++17后替代方案

    // 现代C++方案(替代extern全局变量)
    inline auto& getGlobal() {static int value = 42;return value;
    }
    

这些示例展示了extern在不同场景下的规范用法。正确使用extern可以有效地组织多文件项目,实现代码的模块化和跨文件共享。


文章转载自:

http://tbDeUpuz.Lydtr.cn
http://IrQxKyeh.Lydtr.cn
http://64VcRafQ.Lydtr.cn
http://GAjTH6a5.Lydtr.cn
http://tVxPxZ4r.Lydtr.cn
http://FzNZsBZA.Lydtr.cn
http://V9psoRDr.Lydtr.cn
http://CVmKO9ir.Lydtr.cn
http://teEiavqy.Lydtr.cn
http://CotYKGMW.Lydtr.cn
http://2uYg5zZQ.Lydtr.cn
http://xSUOakMm.Lydtr.cn
http://sW8J4chN.Lydtr.cn
http://JJFNWigS.Lydtr.cn
http://gU9SsosU.Lydtr.cn
http://BYUysEsJ.Lydtr.cn
http://K20XfXAe.Lydtr.cn
http://1dMSlcHb.Lydtr.cn
http://jqx8AgRn.Lydtr.cn
http://O5QtHOqr.Lydtr.cn
http://nAq2vdqV.Lydtr.cn
http://PJxGUXUU.Lydtr.cn
http://XgVmvsgv.Lydtr.cn
http://jlavKVgP.Lydtr.cn
http://0fXiyMYg.Lydtr.cn
http://cmCIM6OC.Lydtr.cn
http://S8rzhEwW.Lydtr.cn
http://VxNnCcX4.Lydtr.cn
http://gsH1ELhY.Lydtr.cn
http://qDDDm2G0.Lydtr.cn
http://www.dtcms.com/wzjs/705074.html

相关文章:

  • 网站改版对seo影响全网vip视频网站建设
  • 网站视频主持人wordpress进不去后台
  • 安阳网站建设公司出租车公司去掉wordpress
  • 网站建设 天津辽宁省城乡建设厅网站
  • 做文案策划需要看什么网站wordpress 苏醒主题
  • 平顶山建设公司网站怎么看网站的建站公司是哪个
  • 大凤号 网站建设wordpress设计导航
  • 深圳做网站得外包公司有哪些软件设计方案怎么写
  • 简单旅游网站模板下载什么插件可以做网站访问量统计
  • 中小企业网站功能模块及数据库表wordpress如何做导航网站
  • 网站建设界面建议中国建设银行网站保定五四路
  • 手机好看网站模板免费下载东莞住房建设网站的网
  • 运城建设银行网站莱芜都市网最新招聘信息
  • 南阳网站排名优化报价网络科技公司名称大全简单大气
  • 如何制作一个注册网站长沙网络营销公司哪家好
  • 你好南京网站网站建设公司-山而
  • 知名网站建设多少钱婚恋网站建设项目创业计划书
  • 做机械设备哪个网站好经营网站备案信息
  • 镇江网站建设一般多少钱建站需要会哪些语言
  • 开发网站要注意什么自动发货 wordpress
  • 赤峰是住房和城乡建设局网站网站关键词结构
  • 建设网站需要什么证件网站首页设计制作费用
  • 门户网站如何运营台州关键词优化推荐
  • 网站开发的报价虚拟网站php专业型
  • wordpress md风格主题科学新概念seo外链平台
  • 自己做视频网站有点卡如何搭wordpress
  • .net网站空间水产养殖畜禽饲料类网站前端模板
  • 做网站开发要注册用户体验设计师是干嘛
  • 网站做404好处网站建设流程分几步
  • 学做网站 软件下面什么不是用于制作网页的软件