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

app开发网站公司品牌推广广告

app开发网站公司,品牌推广广告,软件推广代理,网站制作公司加盟目录 总述 一、声明外部变量 二、声明外部函数 三、实现模块化编程 四、与"C" 连用,实现C和C的混合编程 五、注意事项 六、疑点补充(你可能会有和我一样的疑问?) 总述 在C和C中,extern关键字用于声明外…

目录

总述

一、声明外部变量

二、声明外部函数

 三、实现模块化编程

四、与"C" 连用,实现C和C++的混合编程

 五、注意事项

六、疑点补充(你可能会有和我一样的疑问?)


总述

       在C和C++中,extern关键字用于声明外部全局变量变量或函数,表明它们的定义位于其他文件中,从而允许在不同源文件之间共享变量和函数。以下是extern的常见用法:

一、声明外部变量

一)用法

       在一个源文件中定义全局变量后,在其他源文件中使用extern声明该变量,以便访问它。

二)示例

        file1.c:定义全局变量

int globalVar = 10;

        file2.c:声明并使用该变量

extern int globalVar;void func(){printf("globalVar = %d\n",globalVar);
}

二、声明外部函数

一)用法

        在一个源文件中定义函数后,在其他源文件中使用extern声明该函数,以便调用它。

二)示例

        file1.c:定义函数

void func(){//函数实现
}

        file2.c:声明并调用该函数

extern void func();int main(){func();return 0;
}

 三、实现模块化编程

一)用法

        将extern声明放在头文件中,以便多个源文件包含头文件后共享变量和函数。

二)示例

        header.h

#ifndef HEADER_H
#define HEADER_Hextern int globalVar;
extern void func();#endif

        file1.c

#include "header.h"int globalVar = 10;
void func(){//函数实现
}

        file2.c

#include "header.h"void anotherFunc(){printf("globalVar = %d\n",globalVal);func();
}

四、与"C" 连用,实现C和C++的混合编程

一)用法

        在C++中,使用extern "C"指定按照C语言规则进行函数名修饰和链接,以便调用C语言编写的库函数或在C语言中调用C++编写的函数。

二)示例

        C++代码调用C函数

extern "C"{#include "c_library.h"
}int main(){c_function();return 0;
}

        C代码调用C++函数

//C++ code
extern "C" void cpp_function(){//函数实现
}

 五、注意事项

一)声明与定义的区别

        extern用于声明变量或函数,定义时需要分配内存空间。变量只能定义一次,但可以多次声明。

二)头文件保护

        在头文件中使用extern声明变量或函数时,应配合条件编译指令(如#ifndef、#define、#endif)防止头文件被重复包含。

        通过合理使用extern关键字,可以提高代码的组织性和可维护性,实现模块化编程,并支持C和C++混合编程。

六、疑点补充(你可能会有和我一样的疑问?

问:extern 引用的变量可以赋值吗?

答:在 C 和 C++ 中,使用 extern 关键字声明的变量本质上是一个指向已经在其他地方定义的变量的引用。它的主要作用是告诉编译器这个变量在其他文件中定义,可以在当前文件中使用。关于赋值的问题,下面是一些要点:

一)赋值效果:虽然在声明时使用 extern 不允许你直接给这个变量赋初始值,但你可以在任何地方(通常是在其定义所在的文件中)对其进行赋值。例如:

//file1.c
int myVar; // 定义
myVar = 10; // 可以赋值//file2.c
extern int myVar; //引用变量,不能初始化
myVar = 20; //可以赋值,虽然在其他文件中被引用void modifyValue(){myVar = 30; // 可以赋值
}int main(){modifyValue();printf("myVar = %d\n",myVar);return 0;
}

 二)初始化与赋值如果在同一作用域内声明变量,extern声明的变量不能被初始化。例如:

extern int myVar = 10; //错误:无法初始化extern声明的变量

三)在函数内:在函数内部,你可以访问extern声明的变量并对其赋值,但前提是该变量在其他地方有定义。

        总之,extern引用的变量是可以被赋值的在声明时不能直接初始化它


文章转载自:

http://509TKRHL.xgxbr.cn
http://beDuZawq.xgxbr.cn
http://TPQdYZov.xgxbr.cn
http://O9Xa0oaf.xgxbr.cn
http://NI8brnCB.xgxbr.cn
http://S0rcy5rp.xgxbr.cn
http://jErooHXk.xgxbr.cn
http://ZPAfdQyS.xgxbr.cn
http://2qhnJOiL.xgxbr.cn
http://8NpqU47S.xgxbr.cn
http://QGp0wJCK.xgxbr.cn
http://KG79RYK7.xgxbr.cn
http://tfMNcSsz.xgxbr.cn
http://Z5MYdXs1.xgxbr.cn
http://K9nQKuz1.xgxbr.cn
http://reVFAQjW.xgxbr.cn
http://VfU36Qtp.xgxbr.cn
http://n70Q6Ee3.xgxbr.cn
http://E5b2UKMa.xgxbr.cn
http://1AHOTx7R.xgxbr.cn
http://oxQnfk6c.xgxbr.cn
http://dn8c8b3R.xgxbr.cn
http://dACc7KVQ.xgxbr.cn
http://xSMK4uBM.xgxbr.cn
http://wnwDvKNS.xgxbr.cn
http://6nFYUd7t.xgxbr.cn
http://3QHo3Kbn.xgxbr.cn
http://8XYF7W2S.xgxbr.cn
http://JWar1VXw.xgxbr.cn
http://lqAHmcDg.xgxbr.cn
http://www.dtcms.com/wzjs/623035.html

相关文章:

  • 网站连接微信网站建设费用价格表
  • 上海高端网站建设制作中国艺术设计联盟
  • 网络科技公司网站建设创立网站成本
  • 专业网络工程师培训北京关键词优化报价
  • 网站推广是干嘛的电商gpm是什么意思
  • 湖北网站建设联系电话wordpress怎么做产品列表页
  • 青岛在线制作网站wordpress绑定二级域名插件
  • 自己建的网站百度查找不到西安百度公司
  • 石油化工建设网站wordpress个人版支付
  • 施工方案下载免费网站鞍山网页制作
  • 公交车广告深圳优化网站公司哪家好
  • 做电影网站如何不侵权网站二维码可以做长按识别吗
  • 有些网站打不开怎么解决工程装饰网
  • wordpress 一直跳转到老域名厦门百度seo
  • 做网站多少钱zwnet英文电商网站建设
  • 兰州 电子 网站建设湖南省城乡建设厅网站查证
  • 网站建设流程及构架网站在排版有哪些方法
  • 林州风景网站建设的目的山西建筑工程集团有限公司
  • 常德网站设计H5网站开发工程师
  • 做3d效果图的网站wordpress主题中的psd
  • 遵义市播州区住房和城乡建设局官方网站在线做网站黄
  • yyf做的搞笑视频网站国示范校建设网站
  • vs2010 c 建设网站搭建网站知识
  • 商务网站建设的流程商服网站模板
  • 学校英文网站建设申请诚信档案建设网站
  • 网站建设 人员 年终总结做兼职打字员的网站
  • 杭州定制网站制作wordpress 搭建教程 pdf
  • 如何提高用户和网站的互动性wordpress api开发文档下载
  • 做网站手机号抓取的公司漳州微信网站开发
  • 购物商城网站开发实验报告手机版网址