extern用法

来源:互联网 发布:淘宝卖家认证在哪里 编辑:程序博客网 时间:2024/05/29 13:54

局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。

delay(){int a}

 

全局变量也称为外部变量,它是在函数外部定义的变量

它不属于哪一个函数,它属于一个源程序 .c文件。其作用域是整个源程序 所有.c文件

<p><span style="color: rgb(255, 0, 255); background-color: rgb(153, 153, 153);">extern的用法有些混乱,不去细究什么时候对,什么时候错,不同编译器都可能不一样,下面是一定对的用法:</span></p><p><span style="color: rgb(255, 0, 255); background-color: rgb(153, 153, 153);">1.一个工程只有一个c文件,全局变量定义在程序最前 [extern]int a=0,b=0;</span></p><p><span style="color: rgb(255, 0, 255); background-color: rgb(153, 153, 153);">2.一个工程包含多个c文件,全局变量的定义用int a=0;或int a; 声明用 extern int  a ;</span></p><p><span style="color: rgb(255, 0, 255); background-color: rgb(153, 153, 153);"><span style="font-family:Adobe 黑体 Std R;">一般都是在</span> . h文件里写好,通过ifdefine 使得一个c文件里是定义,其他c文件里是声明,避免重复定义,而全局变量作用域是所有c文件,但其他c要用要声明</span></p><p><span style="background-color: rgb(153, 153, 153);"><span style="font-family:Adobe 黑体 Std R;">如下所示:</span>   #ifdef       OS_GLOBALS</span></p><p><span style="background-color: rgb(153, 153, 153);">#define      OS_EXT</span></p><p><span style="background-color: rgb(153, 153, 153);">#else</span></p><p><span style="background-color: rgb(153, 153, 153);">#define      OS_EXT   extern</span></p><p><span style="background-color: rgb(153, 153, 153);">#endif</span></p><p><span style="color: rgb(255, 0, 255); background-color: rgb(153, 153, 153);">OS_EXT    INT32U   OSIdleRun;</span></p><p><span style="background-color: rgb(153, 153, 153);"><span style="color:rgb(255,0,255);"><span style="font-family:Adobe 黑体 Std R;">定义是</span>   OS_EXT被设置为空  ===>  </span><span style="color:rgb(255,0,255);">INT32U   OSIdleRun;</span></span></p><p><span style="background-color: rgb(153, 153, 153);"><span style="color:rgb(255,0,255);"><span style="font-family:Adobe 黑体 Std R;">说明是</span>   </span><span style="color:rgb(255,0,255);">OS_EXT被设置为extern  ===>  </span><span style="color:rgb(255,0,255);">extern     INT32U   OSIdleRun;</span></span></p>

extern int i; 定义

 Function()     

{

  i=0;

}常见用法



extern int i;声明        

 Function()     

{

  extern int i;定义

  i=0;

}太费事不用




0 0
原创粉丝点击