• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

在单片机C语言中extern和static的用法不同

Angel_YY 2018-03-06 浏览量:1770
在单片机C语言中extern和static的用法有什么不同?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 两个限定词的作用是相反的
    1、全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量;
    2、全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。
    • 发布于 2018-03-06
    • 举报
    • 评论 1
    • 3
    • 0
电子老工程师 回复了 :TLV1117LV30DCYR,TI , 不完全替代,需要跟客户确认 回复

其他答案 数量:12
  • static 修饰变量表示此变量是静态的,不会随函数释放而释放,存储在堆区。修饰函数表示函数只在此文件中有效。

    extern 修饰变量表示此变量来源于其他文件定义的,此文件需要用到,用于全局变量。函数不加static一般隐含extern。

    • 发布于2018-03-06
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :这个是以太网接口,对插端是定制线缆。 回复

  • extern 关键字用来告诉编译器当前修饰的内容在其他地方定义,让链接器链接的时候将原始位置的定义链接进来。

    static 我更喜欢网上的一种说法:透明化修饰内容,可以这样理解,被static修饰的局部变量生命周期会到程序结束,而被static修饰的函数则起到了封装的特性,不被外界使用

    • 发布于2018-03-06
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :TE 内部编号 4-1415899-7 TE 内部产品描述 RZ03-1A3-D005 别名 IDRZ03-1A3-D005 原厂没有尾缀带R的型号,前台数据错误。 回复

  • 这两个关键字在功能上是完全相反的,extern是声明外部变量的,变量可以跨文件或者跨函数执行,二static是静态变量,声明的变量只能在本文件或者本函数内有效,但是static还有一个作用就是变量值是不会自动复位的,它声明的变量只会初始化一次,不会因为函数的重新加载而重新初始化
    • 发布于2018-03-06
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :Renesas Electronics 收购 Intersil是收购关系,两个厂牌的同一型号实物是一致的 回复

  • 通俗点说,就是extern让变量在多文件中使用,static让变量在单文件中全局使用
    • 发布于2018-03-06
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :RT8487GJ6, Richtek USA Inc只有这个有货,但是不完全替代,需要跟客户确认一下 回复

  • extern是用来引用其他文件中的变量和函数用的,static是用来声明局部变量用的,这种局部变量不会因为函数的执行完毕而被回收,会一直存在。
    • 发布于2018-03-06
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :这颗料是个微控制器,只能查到规格书的修订版本,这颗料最新版本的规格书E版本的 回复

  • extern 表示外部变量。static表示局部静态变量。
    • 发布于2018-03-06
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :两个厂牌的型号不能直接替换,两个型号在Vgs和Id以及其他电气参数方面存在差异,可以将两份规格书均发给客户,由客户根据实际设计进行选择替换 回复

  • extern对全局变量在其他文件中的声明,在其他文件中可以使用这个变量,
    static只是静态变量的声明,
    • 发布于2018-03-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 两者的意义完全不同。

    extern 用来修饰外部变量,告知编译器 这个变量的位置在其他文件中

    static 用来修饰静态变量或者函数,使变量和函数 都只能在本文件中可见、可使用。

    • 发布于2018-03-06
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :请看https://www.ti.com.cn/zh-cn/support-quality/environmental-info/logo-product-labeling.html 回复

  • extern修饰作用域,static修改作用域或者生存时间
    • 发布于2018-03-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :尾缀H;无铅符合rohs,TS:代表包装,A1:代表版本,智库有相关的详细解释,请查阅 回复

  • extern用声明全局变量的,而static用来声明局部变量的
    • 发布于2018-03-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :请遵照原厂给出的测试条件在测测看看 回复

  • extern的作用是,如果你想在源文件B中用源文件A的函数或者变量就加extern

    static指静态变量,意思是每次调用后这个值是保持不变的

    • 发布于2018-03-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :MPD-1,厂牌:MCL 回复

  • extern,向外部函数声明这个变量,static,不允许外部函数调用
    • 发布于2018-03-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://www.mouser.cn/datasheet/2/308/1/MBRS140T3_D-2315006.pdf 回复

相关问题

问题达人换一批

在单片机C语言中extern和static的用法不同