static关键字在C语言中的作用

news/2024/10/24 0:22:13/

static关键字有三个主要作用:

1.修饰全局变量

2.修饰函数

3.修饰局部变量

(1)首先是修饰全局变量,就是变量只能在本文件中使用,不能在其他文件中使用

代码示例:vi 1.c

vi 2.c

 编译:gcc 1.c 2.c -o main

./main

编译结果:

假设用上static关键字

编译出错:因为num被static修饰,只能在1.c文件中使用

(2)其次,可以用static修饰函数,作用也差不多,函数只能在本文件中调用

比如这次在2.c中用static修饰函数

编译的时候又会出错:因为在1.c中无法使用2.c中的函数

(3)static修饰局部变量,可以改变变量的生命周期,直到程序运行结束时才会被释放

 经典笔试题示例:num存放在栈区,函数调用完会释放

编译结果:

用static修饰:num存放在静态数据区,程序运行结束才释放

编译结果:


http://www.ppmy.cn/news/421248.html

相关文章

实际项目中使用gorm-gen来生成实体类

一、为什么要使用gorm-gen来生成实体类和查询 1、根据gorm官网地址,正常的写法是先写数据模型,然后由数据模型自动同步生成到数据库中,但是这样的工作量会比较大,对于写后端的人来说都熟悉sql语句,正常来说都是先自己手动创建表,利用工具将表字段同步到项目实体类中…

spring05-AOP

spring-mybatis整合:注意版本对应 -导坐标,pom.xml aspectjweaver -制作连接点方法,Dao接口与实现类 Repository -制作共性功能,通知类与通知 -定义切入点 PointCut() -绑定切入点与通知关系 Before("***") Compon…

Python中使用matplotlib绘制各类图表示例

折线图 折线图是一种用于表示数据随时间、变量或其他连续性变化的趋势的图表。通过在横轴上放置时间或如此类似的连续变量,可以在纵轴上放置数据点的值,从而捕捉到数据随时间发生的变化。折线图可以用于比较不同变量的趋势,轻松地发现不同的…

shell索引数组变量-定义获取拼接删除

目录 介绍数组的定义演示 数组的获取数组的拼接演示: 数组的删除 介绍 Shell 支持数组(Array), 数组是若干数据的集合,其中的每一份数据都称为数组的元素。 ( 注意Bash Shell 只支持一维数组,不支持多维数组…

自动化测试工具playwright、selenium4、cypress等对比

前言 自己之前用selenium, cypress工具做过自动化测试,目前公司要做自动化测试,主要产品是web网页(PC和手机端),微信小程序和 app, 需要结合公司的产品和各工具的特点来选择符合的测试工具 对比分析 以下是根据个人…

DDR 内存基础知识(2)- DDR预取

对预取概念理解之前,先来复习下DDR颗粒位宽的概念。上一篇文章说了,一个Memory Array中由行地址和列地址的交叉选中一个位,若两个Array叠加在一起,就同时选中了两个Bit,位宽是X2。若四个Array叠加到一起,就…

DDR原理

一、 软件平台与硬件平台 软件平台: 1、操作系统:Windows-8.1 2、开发套件:无 3、仿真工具:无 硬件平台: 1、 FPGA型号:无 2、 DDR3型号:无 二、 存储器的分类 存储器一般来说可以分为内部存储…

从DDR到DDR4,内存核心频率其实基本上就没太大的进步

从2001年DDR内存面世以来发展到2019年的今天,已经走过了DDR、DDR2、DDR3、DDR4四个大的规格时代了(DDR5现在也出来了)。内存的工作频率也从DDR时代的266MHz进化到了今天的3200MHz。这个频率在操作系统里叫Speed、在内存术语里叫等效频率、或干…