C++ primer 之 extern

news2024/11/25 6:43:56

C++ primer 之 extern

      • 什么是声明
      • 什么是定义
      • 两者有什么区别
      • ertern的作用

什么是声明

就是使得名字为程序所知,一个文件如果想使用别处定义的名字就必须包含对那个名字的声明。

什么是定义

负责创建与名字关联的实体。

两者有什么区别

变量声明和声明都规定了变量的类型和名字,但是定义还申请了存储空间,也可能会为变量赋一个初始值。

ertern的作用

如果想声明一个变量而非定义它,就在变量名前添加关键字(extern),而且不要赋初始值。

extern int i;  //声明i而非定义i
int j;         // 声明并定义j

举个栗子
创建 a.cpp 和 b.cpp
a.cpp代码如下所示:
在这里插入图片描述b.cpp代码如下所示:
在这里插入图片描述
编译成功显示 n = 10
在这里插入图片描述
注:在函数体内部,如果试图初始化一个由extern关键字标记的变量,将引发错误
再举个栗子 在上面a.cpp的基础上修改一下
在这里插入图片描述b.cpp 不变
编译运行,报错
在这里插入图片描述
报错原因猜测:,a.cpp中本来n是内部定义的变量,只在局部起作用,但是又在前面加了一个extern,使其与外部又可以联系,产生了矛盾。(如有错误,欢迎大佬批评指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/373649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FPGA纯verilog解码SDI视频 纯逻辑资源实现 提供2套工程源码和技术支持

目录1、前言2、硬件电路解析SDI摄像头Gv8601a单端转差GTX解串SDI解码VGA时序恢复YUV转RGB图像输出FDMA图像缓存HDMI输出3、工程1详解:无缓存输出4、工程2详解:缓存3帧输出5、上板调试验证并演示6、福利:工程代码的获取1、前言 FPGA实现SDI视…

多元回归分析 | LASSO多输入单输出预测(Matlab完整程序)

多元回归分析 | LASSO多输入单输出预测(Matlab完整程序) 目录 多元回归分析 | LASSO多输入单输出预测(Matlab完整程序)预测结果评价指标基本介绍程序设计预测结果 评价指标 LASSO回归 训练集平均绝对误差MAE:1.7669 训练集平均相对误差MAPE:0.051742 训练集均方根误差MSE…

【ARMv8 编程】ARMv8 指令集介绍

ARMv8 架构中引入的最重要的变化之一是增加了 64 位指令集。该指令集补充了现有的 32 位指令集架构。这种增加提供了对 64 位宽整数寄存器和数据操作的访问,以及使用 64 位长度的内存指针的能力。新指令被称为 A64,以 AArch64 执行状态执行。ARMv8 还包括…

编码的基本概念

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:information-theory】,需要的朋友们自取。或者公众号【AIShareLab】回复 信息论 也可获取。 文章目录信源编码分类前缀…

nginx模块介绍

新编译前,在对应的nginx原编译文件夹 如:nginx-1.23.0 下,要 make clean 清空以前编译的objs文件夹,实际上就是执行了rm objs文件夹。 很多要用到git,先yum install git -y echo-nginx-module 让nginx直接使用echo的…

基于SpringBoot的任务管理三种方式

文章目录前言一,异步任务1.1 无返回值异步任务调用1.2 有返回值异步任务调用二、定时任务2.1 背景介绍2.2 todo三、邮箱任务3.1 todo前言 开发 web 应用时,多数应用都具备任务调度功能,常见的任务包括异步任务、定时任务和邮件任务。我们以数…

springboot+vue企业固定资产管理系统java

资产管理系统可以更加直观的了解到企业资产的使用情况,让企业资产透明化。资产管理系统可以帮助企业标记企业所有的资产,这些资产包括电脑,桌子,椅子等不动资产的标识,以及固定资产的新增,修改,…

渗透测试 | UserInfo信息收集

0x00 免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担…

Leetcode 双指针详解

双指针 双指针顾名思义,就是同时使用两个指针,在序列、链表结构上指向的是位置,在树、图结构中指向的是节点,通过或同向移动,或相向移动来维护、统计信息 在数组的区间问题上,暴力算法的时间复杂度往往是O…

分布式项目-规格参数(13)

【今日成果】: //商品维护模块;其中值得一提的是。商品的介绍全部都做成图片的形式,这样有利于去维护。 商品模块中的页面在created中一开始要对会员等级进行查询操作,访问MemberController中的list接口。 //维护规格参数信息…

【离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计】

离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计一、DWS层设计要点二、DWS层设计分析 - 1d/nd1.DWS层设计一:不考虑用户维度2.DWS层设计二:考虑用户维度2.DWS层设计三 :考虑用户商…

骨骼控制(一)——动画动态节点(AnimDynamics)

文章目录一、引言二、骨骼控制三、UE蓝图中提供的骨骼控制节点——AnimDynamics动画蓝图节点1、什么是AnimDynamics动画蓝图节点①使用盒体计算惯性②使用约束来限制移动2、AnimDynamics节点的几种常用例子①单骨骼模拟②骨骼链模拟 <h2 id1>③群魔乱舞&#xff08;这是错…

YOLOv8之C2f模块——与YOLOv5的C3模块对比

一、源码对比 YOLOv8完整工程代码下载&#xff1a;ultralytics/ultralytic   C2f模块源码在ultralytics/nn/modules.py下&#xff0c;源码如下&#xff1a; class C2f(nn.Module):# CSP Bottleneck with 2 convolutionsdef __init__(self, c1, c2, n1, shortcutFalse, g1, e…

安装kibana 报错/访问不了

安装kibana 报错1&#xff0c;elasticsearch.yaml 和kibana.yaml 配置问题2&#xff0c;elasticsearch 和kibana版本不一致3&#xff0c;索引问题1&#xff0c;elasticsearch.yaml 和kibana.yaml 配置问题 我的RPM安装的&#xff0c;配置文件都在/etc/ vim /etc/elasticsearc…

【Python知识点桂电版】02组合数据类型

一、序列序列简介序列是指一种包含多项数据的数据结构&#xff0c;分为不可变序列和可变序列。可变序列可修改序列内的元素如列表&#xff0c;二不可变序列一旦建立就不能修改其中的元素&#xff0c;字符串和元组属于不可变序列。列表和元组的创建列表&#xff1a;列表名 [元素…

大学物理期末大题专题训练总结-热学大题

今天下午去找郑老师权老师等去答疑&#xff0c;老师说大题会考查得比较套路&#xff0c;计算不难。明天就要考试了&#xff0c;再把大题常见题型总结一下&#xff0c;热学这块我做完了蓝本的热学题目&#xff0c;发现了如下三种&#xff1a;有关循环过程曲线的&#xff1a;给出…

简历信息提取论文笔记Information Extraction from Resume Documents in PDF Format

标题&#xff1a;Information Extraction from Resume Documents in PDF Format下载地址&#xff1a;https://library.imaging.org/ei/articles/28/17/art00013长度&#xff1a;8页发表时间&#xff1a;2016引用量cite27先读标题、摘要、结论、然后 methods/experiment design,…

大数据NiFi(二十):实时同步MySQL数据到Hive

文章目录 实时同步MySQL数据到Hive 一、开启MySQL的binlog日志 1、登录mysql查看MySQL是否开启binlog日志 2 、开启mysql binlog日志 3、重启mysql 服务&#xff0c;重新查看binlog日志情况 二、​​​​​​​​​​​​​​配置“CaptureChangeMySQL”处理器 1、创建“…

JAVA企业级开发 1.4 Spring_采用Java配置类管理Bean

文章目录一、采用Java配置类管理Bean&#xff08;一&#xff09;打开项目&#xff08;二&#xff09;创建子包&#xff08;三&#xff09;创建杀龙任务类&#xff08;四&#xff09;创建勇敢骑士类&#xff08;五&#xff09;创建Spring配置类&#xff08;六&#xff09;创建测…

STM32单片机之温湿度检测系统(DTH11、OLED、LCD1602)

LCD1602LCD1602引脚第 1 脚: VSS 为电源地 第 2 脚: VDD 接 5V 正电源 第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱&#xff0c;接地时对比度最高&#xff0c;对比度过高时会产生“鬼影”&#xff0c;使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚&…