C语言——关键字 static volatile const extern 用法

static 不污染内存空间

用法:

static void helperFunction() {// 实现细节
}
/*在函数声明前加上"static"关键字可以将函数的作用域限制在当前源文件中。静态函数只能在当前源文件中调用,不能被其他源文件调用。使用静态函数有助于隐藏实现细节和避免命名冲突。*/
void publicFunction() {// 调用静态函数helperFunction();
}int main() {publicFunction();return 0;
}

volatile 异变的量 提醒编译器要对该关键字的变量 作出编译 而不是优化该语句

用法:

int main(){volatile int a;//a=10;//printf("%d",a);屏蔽了这句话 编译器会自动帮你优化a变量 必须加上volatilereturn 0;}

const 无法改变的量

用法:

void printMessage(const char* message) {printf("%s\n", message);
}

在上面的示例中,"message"参数被声明为一个指向常量字符的指针。这表示函数内部不能通过该指针来修改传入的字符串。

const int MAX_VALUE = 100;

在上面的示例中,"MAX_VALUE"被声明为一个常量变量,并被赋予初始值100。在程序的执行过程中,不能对"MAX_VALUE"进行赋值操作,因为它是一个常量。

extern 简单来说可以对别的点c文件中的函数引用使用的作用

用法:

// file1.c
int globalVariable; // 定义一个全局变量// file2.c
extern int globalVariable; // 声明全局变量,表明其定义在其他文件中int main() {globalVariable = 10; // 使用全局变量return 0;
}

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

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

相关文章

摒弃反模式:使用Kotlin委托优化Android BaseActivity

摒弃反模式:使用Kotlin委托优化Android BaseActivity 在Android开发中,许多开发者习惯于创建名为“BaseActivity”或“BaseFragment”的基类,以便在所有Activity或Fragment中共享一些通用行为。这种方法乍一看似乎是个好主意,但实…

用Python制作幸运大转盘,抽奖转盘对比-tkinter(Python的内置GUI库)和pygame(一个更强大的游戏和多媒体应用库)——小白也能轻松看懂

一、要制作一个幸运大转盘(抽奖转盘)的Python程序,你可以使用图形库如tkinter(Python的内置GUI库)或者pygame(一个更强大的游戏和多媒体应用库)。由于tkinter更为简单和直接,以下是一…

零基础女生如何入门人工智能,从哪里下手?学习时间大概要多久?

作为一个理工科早期毕业生,出于近乎本能的敏感,格外关注全网热议的ChatGPT。 本来国内就业环境就不好,各行各业内卷越来越严重,加上人工智能的异军突起,各行各业势必将迎来科技进步跨时代的巨大冲击,在此情…

000005 - HDFS 读写流程

HDFS 读写流程 1 HDFS 写数据流程1.1 HDFS 写数据流程图1.2 HDFS 写数据之网络拓扑 - 节点距离计算1.3 机架感知(副本存储节点选择) 2 HDFS 读数据流程2.1 HDFS 读数据流程图 3 HDFS 如何做到机架感知 1 HDFS 写数据流程 1.1 HDFS 写数据流程图 &#x…

【代码随想录刷题】day02——977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

977.有序数组的平方 方法一&#xff1a;暴力法 class Solution { public:vector<int> sortedSquares(vector<int>& nums) {// 暴力法for(int i 0; i < nums.size(); i){nums[i] * nums[i];}sort(nums.begin(), nums.end());return nums;} };方法二&#…

安美数字酒店宽带运营系统——命令执行漏洞(CNVD-2021-37784)

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 安美数字酒店宽带运营系统 server_ping.php 存在远程命令执行漏洞&#…

Spring RestTemplate配置DNS解析超时

RestTemplate 常用的超时设置方法可以设置连接超时、接口请求超时、接口响应超时&#xff0c;但是对于DNS解析超时往往没有简单的方法可以设置。本文介绍设置DNS解析超时时间的方法&#xff0c;具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/sp…

2-15 基于matlab的蚁群,模拟退火,遗传,神经网络,禁忌搜索等智能优化算法对TSP问题

基于matlab的蚁群&#xff0c;模拟退火&#xff0c;遗传&#xff0c;神经网络&#xff0c;禁忌搜索等智能优化算法对TSP问题。五种优化算法对多个城市路径进行规划&#xff0c;通过优化速度、距离可比较五种方法的优劣。程序已调通&#xff0c;可直接运行。 2-15 蚁群优化算法 …

智能屏幕人体雷达感应开关模块,飞睿智能低功耗毫米波雷达技术,让冰箱更节能

在智能家居日益普及的今天&#xff0c;各种创新技术层出不穷&#xff0c;极大地提升了人们的生活品质。其中&#xff0c;人体雷达感应开关模块作为一种创新的传感器技术&#xff0c;正在逐步改变我们对家电设备的传统认知。本文将深入探讨飞睿智能人体雷达感应开关中的毫米波雷…

qml自定义组件

不管是component还是分文件编写的一个自定义组件&#xff0c;遵循如下&#xff1a; a:不管哪一级的子对象 都可以直接调根节点下的方法和属性 b:不管哪一级的子对象 调用非根节点的方法和属性&#xff0c;前面要加上该节点的id,即id.方法()或id.属性的形式 import QtQuick 2.…

使用插件和微调优化 GPT 模型

文章目录 LLM 用例和示例产品警惕 AI 幻觉&#xff1a;限制与考虑使⽤插件和微调优化 GPT 模型 OpenAI 在其网站上展示了许多激励人心的客户故事&#xff0c;我们需要了解这些模型如何改变我们的社会并为商业和创造力开辟新机遇。正如你将看到的&#xff0c;许多企业已经开始使…

web学习笔记(六十七)项目总结

目录 1.使用弹性布局来实现元素水平垂直居中 2. 实现vant组件样式穿透 3.通过请求返回的数据动态设置类名 4.设置元素溢出隐藏为省略号 5. z-index的使用 6.利用弹性布局实现横向滚动 7.盒子内的两个元素无法实现底部对齐 8.如何设置文本显示两行&#xff0c;且在第二行结…

JSON.parse(JSON.stringify())导致的响应式属性丢失

console.log("formdata赋值前", this.formdata);console.log("row",row);console.log("row序列化后", JSON.parse(JSON.stringify(row)));this.formdata JSON.parse(JSON.stringify(row)); console.log("formdata赋值后", this.formd…

加密的记事本app哪个好用 记事本哪款好用能上锁

随着科技的进步&#xff0c;越来越多的人开始倾向于使用记事本app来记录生活中的点点滴滴。相较于传统的纸质记事本&#xff0c;这些app不仅记录内容丰富&#xff0c;而且安全性更高。其中&#xff0c;敬业签就是一款备受好评的记事本软件。 敬业签以其强大的功能和出色的安全…

【C++进阶之路】C++11——正则表达式

序言 正则表达式&#xff0c;简而言之就是用来匹配指定模式字符串的工具&#xff0c;在计算机的世界中&#xff0c;它发挥着很大的作用&#xff0c;比如编译器的词法分析&#xff0c;注册时验证密码的复杂度&#xff0c;爬虫爬取固定格式的数据时等场景都要用到。那么本篇的目的…

【SpringCloud-Seata源码分析3】

文章目录 事务的提交客户端提交流程服务端提交流程客户端删除undo_log 事务回滚客户端事务回滚服务端回滚事务 事务的提交 前面两篇我们分析了seata的TC初始化和TM,RM初始化&#xff0c;并且事务准备阶段源码及业务Sql执行&#xff0c;下面我们分析事务的提交源码。 客户端提…

数据库 触发器、游标应用

1. 利用SQL Server Management Studio创建一个存储过程ProcNum&#xff0c;查询每个班级中学生的人数&#xff0c;按班级号升序排序。 答案&#xff1a; create procedure procnumasbeginselect classid, count(*) as 学生人数from studentgroup by classidorder by class…

《昇思 25 天学习打卡营第 5天 | 网络构建 》

《昇思 25 天学习打卡营第 5天 | 网络构建 》 活动地址&#xff1a;https://xihe.mindspore.cn/events/mindspore-training-camp 签名&#xff1a;Sam9029 网络构建 概念&#xff1a; 神经网络模型是由神经网络层和 Tensor 操作构成的&#xff0c;mindspore.nn 提供了常见神经…

如何应对 Android 面试官 -> MVVM 实战一个新闻客户端 (中)

前言 本章我们基于重构的方式进行一个 MVVM 的实战&#xff0c;我们将一个新闻列表的普通实现&#xff0c;一步一步的改造成 MVVM 的架构模式&#xff0c;一共分为上中下三个章节&#xff0c;本章继续上一章&#xff0c;开始中篇的讲解&#xff1b; 控件化 我们本章向控件化进…

区块链行业DDOS防护痛点在哪

区块链行业DDOS防护痛点在哪?随着区块链技术的迅猛发展&#xff0c;其应用场景已经从最初的数字货币扩展到了金融、供应链、物联网等多个领域。然而&#xff0c;随着区块链行业的快速崛起&#xff0c;其所面临的网络安全威胁也日益严重&#xff0c;尤其是DDoS&#xff08;分布…