关于extern 与static 的一点认识

Gephi实战指南——从数据导入到可视化输出 本文详细介绍了Gephi数据可视化工具的使用方法,从数据导入到可视化输出的全流程实战指南。涵盖Gephi三大工作区功能、数据导入技巧、图形编辑进阶操作以及专业级可视化输出方案,帮助用户高效完成社交网络分析等复杂任务。 阅读详情

原来总以为static 可以代替extern.能不用extern就不用.现在看来两者区别还是有不少.

static变量声明在头文件里会创建多次,而extern可以防止这类情况的发生.

static法则:
    A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;
    B、若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;
    C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;

【扣子AI开发】如何开发一个图像生成智能体? 【扣子AI开发】如何开发一个图像生成智能体,从创建到发布 阅读详情

相关推荐

格(Lattice)基础(一)

有关格的基础概念,和相关的格难题

Amire0x的小乐园 5699

C语言中定义变量的技巧(全局变量、局部变量、静态全局变量、静态局部变量)

A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度; B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度; C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题,因为他们都放在静态数据存储区,全局可见; D.如果我们需要一个可重入的函数,那么,我们一定要避免函数中

Tony铖 的专栏 1997

NeRF必读:Mip-NeRF总结与公式推导

由于远景近景的分辨率不同,导致经典NeRF对于多尺度场景的表达存在明显瑕疵:NeRF对于近景的重建比较模糊而对于远景的重建出现锯齿。简单粗暴的策略是supersampling,但是费时费力。相较于NeRF使用的位置编码(PE)方式,Mip-NeRF提出了积分位置编码的方式(IPE).这种编码方式可以多尺度地描述空间中的信息分布,make sense.

i_head_no_back的博客 6079

PTA第八章错题

1-10 The data type for return value of a function is the type of function determined when the function is defined. T 1-19 为了便于计算机存储管理,C语言把保存所有变量的数据区,分成动态存储区和静态存储区,静态局部变量被存放在动态存储区。F 2-6 以下关于函数叙述中,错误的是(C )。(1分) A.函数未被调用时,系统将不为形参分配内存单元 B.实参与形参的个数必须相等,且实参与形参的

优快云_YJX的博客 6727

博图V16与840D sl数控系统PLC编程实战指南

本文为西门子840D sl数控系统的PLC编程实战指南,详细介绍了如何使用博图V16软件配置编程环境。内容涵盖从项目创建、核心程序块(如DB、FB)解析到OB1主循环编程的完整流程,并提供了高级调试技巧与联调避坑指南,帮助工程师快速上手并高效完成系统集成与逻辑控制。

weixin_29193259的博客 527

Accelstepper 库中的参数计算公式

要完全调试电机的各个参数,例如最大速度,加速度等,就需要了解其计算公式和原理。 以下是代码注释: /// This code uses speed calculations as described in /// "Generate stepper-motor speed profiles in real time" by David Austin/// http://fab.cba.mi...

wenguitao的博客 4455

C专题上机问题总结

Sex1-递归 1.部分同学针对于递归函数的理解不够深刻。可参考以下链接加以巩固复习。https://www.zhihu.com/question/31412436/answer/683820765?utm_source=wechat_session&utm_medium=social&utm_oi=931879418771615744 2.“6-5 递归实现顺序输出整数”。该题需...

hxy17682323970的博客 4100

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 747

【C语言笔记】全局变量和局部变量

该篇分别从作用域、生命周期、内存分配、使用方式来分析全局变量和局部变量等四种变量的区别。

你好,一起加油! 752

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

王老师青少年编程 3397

气象大模型光伏功率预测中的应用:从短期,超短期,中长期的实现与开源代码详解

本文详细介绍了基于大模型的光伏功率预测方法,涵盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1周)预测。文章首先讨论了数据准备与预处理,包括历史功率、气象、天文和电站特性数据的收集与特征工程。随后,针对不同预测需求,提出了多种深度学习模型:超短期预测采用1DCNN-LSTM混合模型,短期预测使用Transformer模型,中长期预测则通过多尺度特征提取模型和概率预测方法处理不确定性。文章还提供了模型训练、评估、部署和优化的完整流程,并开源了代码实现。未来研究方向包括结合数值天气预报、开发时

专注AI大模型,软件混淆,授权 1575

替代链接 extern “C”

#ifndef ACCOUNT_H_ #define ACCOUNT_H_ #ifdef __cplusplus // 下边的设计就是无论是C 或者 C++ 都可以直接的调用,只需要加上此头文件就可以, extern "C" { #endif float f(int a, int b); void p(); void t(); #ifdef __cplusplus } #endif

qq_31248551的博客 676

地下管网巡检机器人:基于YOLOv8与UI界面的智能化系统设计与实现

通过YOLOv8模型的目标检测功能结合实时视频流,我们能够实现对地下管网巡检机器人的智能化控制。系统通过图像识别技术帮助巡检人员快速识别管道中的各种缺陷和障碍物,从而提高巡检效率和准确性。未来,我们可以继续优化模型,增加更多的目标类别,并通过强化学习等方法提高机器人的自主巡检能力。此外,随着硬件技术的发展,未来的巡检机器人可能会具备更强的感知能力和更高的智能水平。

YOLO 531

【static、extern、头文件】static、extern、头文件的一点总结

关于static和extern、头文件的一点总结。 【转】 今天写了一个测试程序。突然想起了几个问题。特地测试了一下: 主程序为testemail.c #include<stdio.h> 2 #include<stdlib.h> ...

小鱼菜鸟的博客 107

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

static和extern 和 一点const

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34119545的博客 75

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

“extern ”和 “static ” 遇上了,就提一點!

static int A 在A文件中定义了,那么就只能在A文件中应用。 extern int B 在B文件中定义了,但是你可能要在其他文件中查找B。 如果“static int C”,又“extern int C”,那么报错警告如下: .\Output\test.axf: Error: L6218E: Undefined symbol C (referred from xxx.o). 解决

horse_2007s的博客 574

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C语言关键字static与extern的详细解释

参考原文地址(static):https://blog.youkuaiyun.com/keyeagle/article/details/6708077 参考原文地址(extern):https://www.cnblogs.com/Lunais/p/5991135.html C语言中的static与extern是C语言32个关键字中的比较重要的两个内容,也是我近期在学习C++过程中理解较为晦涩的部分,为此,...

zhongshengxuexi_的博客 7765

extern与static

C/C++中extern关键字详解 1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fu

lmx_lmx的博客 1153

史上最全C语言static与extern指南

如果在一个项目中有多个文件定义了相同的全局变量,编译器会报错。为了避免这种情况,可以在定义变量的文件中使用static关键字,或者在其他文件中使用extern关键字来声明该变量。// file1.c// 错误:重复定义// file2.c// 错误:重复定义// 正确的做法:// file1.c// 仅在file1.c中可见// file2.c// 声明globalVar为外部定义通过本文,你应该已经理解了static和extern关键字在C语言中的作用以及如何正确使用它们。

极客代码 2861

static和extern用法总结

一、static修饰普通函数 在普通函数前加static,表明是局部函数,只是在当前源文件中有用,和局部函数相对的是全局函数(前面加extern就是全局函数,但一般省略),一般函数都是默认声明为全局函数的,并且省略extern。 以下面这个例子就可以清除的理解局部函数只在当前源文件中使用的意义了。 /*list.h*/ #include "iostream" using namespace std...

qq_34489443的博客 2118

C语言中static与extern用法总结

前言-变量的储存方法 在C语言中,供用户使用的储存空间分为3个部分,程序区、静态储存区和动态储存区。其中,程序区存放的是可执行程序的机器指令,静态储存区存放的是在程序运行期间需要占用固定储存单元的变量,如全局变量;动态存储区存放的是程序运行期间需要动态分配储存空间的变量,如函数的形参变量、局部变量等。 变量的存储属性就是数据在内存中的存储方法,可分为两大类:动态存储和静态存储。 1、static与extern在变量存储上的区别 1.1.1static既可用于存储局部变量,也可用于存储全局变量 1.1.1st

夏之微风的博客 2716

static 和 extern详解

static 和 extern 都是C语⾔中的关键字。• 修饰局部变量• 修饰全局变量• 修饰函数extern 是⽤来声明外部符号的。作⽤域和⽣命周期。作⽤域(scope)是程序设计概念,通常来说,⼀段程序代码中所⽤到的名字并不总是有效(可⽤) 的,⽽限定这个名字的可⽤性的代码范围就是这个名字的作⽤域。1. 局部变量的作⽤域是变量所在的局部范围。2. 全局变量的作⽤域是整个⼯程(项⽬)。⽣命周期指的是变量的创建(申请内存)到变量的销毁(收回内存)之间的⼀个时间段。

2302_80200271的博客 982

extern和static的用法

一:static static有两种使用:一种是修饰变量,另一种是修饰函数 1.修饰变量:作用是使得该变量在出了其作用范围后不会被销毁 第一种是修饰局部变量: 普通的局部变量是存储在栈区的,但是通过static修饰之后就会存储在静态区上,出了他的作用域之后该变量不会被销毁,通常用于一些实现一些具有记忆性的代码功能,例如strtok函数(可以去百度搜一搜strtok函数的特性)。 下面是例子: #include<stdio.h> void fun() { static

qq_64426102的博客 7447

extern和static的区别

c语言中的 static: 修饰局部变量:存放在静态数据区,生命周期位整个程序结束,但作用于仍为函数局部。 修饰全局变量:无法被同一工程其他源文件访问。 修饰函数:与全局变量类似。 extern: 可被同一工程其他源文件访问 c++中static: 修饰类中函数:表示该函数属于一个类,而不是此类的任何特定对象。 修饰类中变量:表示该变量为所有对象所有,在存储空间中只有一个副本。 c++中exter...

LXY的博客 3505

C语言中static和extern

static关键字与extern关键字 C中的关键字extern是用来做变量声明的,声明extern关键字的全局变量和全局函数可以使得它们的作用域得到扩展, 全局变量和全局函数默认是extern所以声明时我们一般不写 C中的关键字static主要用于修饰普通变量和函数(C++中则主要修饰类的成员变量和函数) 不管在C还是C++中static静态变量都存储在静态区(全局区) exter...

爱上小公举 2957

关于#define/extern/static的思考与总结

写在前面 全局常量作为开发人员一定是一个比较熟悉的概念。全局常量的写法自然也比较多,最近在进行项目的常量重构时看到了各种各样的写法,其中宏定义占大部分,然而有很多使用宏定义是不规范的,而且宏定义只是在预编译阶段进行文本替换,不进行类型检查,从网上看到大量使用宏定义会拖慢编译速度。 所以在定义全局常量时,为了提高开发过程中的规范度和编译速度,宏定义并不是最佳选择。所以我重构的原则是: 能声明成外...

无神的博客 676
上一篇: 封装C++ enum ,并设置enum 的名字
下一篇: zookeeper 3.3.3 C 编译的问题及解决
Falcon2000
博客等级 码龄26年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值