首页 > 其他分享 >static和extern用法

static和extern用法

时间:2023-02-23 17:00:31浏览次数:25  
标签:void 用法 修饰 static extern 全局变量 声明

static

static有两种使用场景:

  1. 修饰变量

    修饰局部变量(称为静态局部变量):出了这个变量的作用域后,该变量不会被销毁。该变量存储在静态存储区

    修饰全局变量(称为静态全局变量):和普通全局变量的区别在于这个被static修饰的全局变量不能在其他源文件中使用,(即不能在其他源文件中用extern关键字修饰这个全局变量)

  2. 修饰函数

    和修饰全局变量类似,这个函数只能在本文件中使用,其他源文件中不能调用这个函数

 

extern(告诉编译器变量在其他地方定义了)

extern用在变量和函数的声明前,表示这个变量或函数在其他源文件中有定义,在此处声明是要用这个变量或函数

test1.c

int i = 1;//定义并初始化,同时也是声明(只能定义一次,但可以声明多次),定义分配空间,声明不分配空间
static int j;//定义,只有test1.c文件可以访问

void func1()//函数的定义
{

}

static void func2()
{

}
test2.c

extern int i;//声明多次
extern void func2();//声明。不分配存储空间
void fun3()
{
  func2();
}
test3.c

extern int i;//声明
extern void func2();//声明
extern void fun3(); int main() {   return 0 }

当然一般是将这些声明放在一个头文件中,这样要调用哪个函数,只用包含对应的头文件就行了。上面这中做法是不包含头文件

标签:void,用法,修饰,static,extern,全局变量,声明
From: https://www.cnblogs.com/zj-studyrecoding/p/17148702.html

相关文章

  • [Typescript] OVerride external library Types
    import{getAnimatingState}from"fake-animation-lib";import{Equal,Expect}from"../helpers/type-utils";constanimatingState=getAnimatingState();ty......
  • Vue框架:9,Vue3的用法,setup函数,ref和reactive,计算属性和监听属性,生命周期,toRefs,script s
    目录前端开发之Vue框架一、Vue31、Vue3创建项目2、setup函数3、ref和reactive4、计算属性和监听属性5、生命周期6、toRefs7、scriptsetup的作用和lang8、Vue后台管理模板......
  • 乘法分配律的推荐用法
    不推荐的使用方式(a+b)(c+d)=a·c+a·d+b·c+b·d=ac+ad+bc+bd推荐的使用方式|这种在符号和式子多的时候不容易出错。(a+b)(c+d)=a·(c+d)+b(c......
  • SQL中模糊查询(like、REGEXP)的用法
    like关键字用法SELECT*FROM`web_game`wherekeywordlike'%动漫%'orkeywordlike'%漫画%'orkeywordlike'%嘿嘿%'orkeywordlike'%直播%'简化用法(使用R......
  • git之.gitignore的用法.md
    软件工程常用git进行管理,但是有一些文件并不需要保存到版本库中(如:编译过程中产生的.o.d文件、临时文件),所以git提供了.gitignore文件机制,将要忽略的文件名写入(相当于黑名......
  • grep命令的基本用法
    grep命令是一个非常强大的文本搜索工具,可以通过各种选项和参数来控制搜索的范围、输出格式和匹配模式。下面是grep命令的一些常用用法:在文件中搜索指定字符串模式并输出......
  • 有关时间函数的用法
    python日期时间函数 所有日期、时间的api都在datetime模块内。1.日期输出格式化datetime=>stringimportdatetimenow=datetime.datetime.now()now.strfti......
  • SqlServer中distinct的用法(不重复的记录)
    https://www.jb51.net/article/24717.htm往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个......
  • MPLS-STATIC-LSP
    目录拓扑图配置基础配置MPLS基础配置MPLS静态LSP的配置验证拓扑图基本思路:第一步:配置好各个接口的IP地址第二步:在R1和R4上配置静音路由,仅需要在R1和R4上配置,R2和R3......
  • rsync用法详细解释
      提要熟悉rsync的功能及其特点掌握rsync语法及常用选项的功能掌握rsync命令的三种基本使用方法掌握如何筛选rsync的传输目标掌握使用rsync......