c语言static与extern的用法 c语言extern用法举例

文件a.c

static int i; //只在a文件中用

int j; //在工程里用

static void init() //只在a文件中用

{

}

void callme() //在工程中用

{

static int sum;

}

上面的全局i变量和init()函数只能用在a.c文件中,全局变量sum的作用域只在callme里。变量j和函数callme()的全局限扩充到整个工程文件。所以可以在下面的b.c中用extern关键字调用。extern告诉编译器这个变量或者函数在其他文件里已经被定义了。

文件b.c

extern int j; //调用a文件里的

extern void callme(); //调用a文件里的

int main()

{

...

}

extern的另外用法是当C和C++混合编程时如果c++调用的是c源文件定义的函数或者变量,那么要加extern来告诉编译器用c方式命名函数:

文件A.cpp调用a.c里面的变量i和函数callme()

extern "C" //在c++文件里调用c文件中的变量

{

int j;

c语言static与extern的用法 c语言extern用法举例
void callme();

}

int main()

{

callme();

}

二,static法则:

A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;

B、若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;

C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;

  

爱华网本文地址 » http://www.aihuau.com/a/25101012/114775.html

更多阅读

转载 fairly,quite,rather,very与pretty的用法区别 fairlylife

谢谢朋友!很不错的资料。原文地址:fairly,quite,rather,very与pretty的用法区别作者:一路花香这几个词都可表示程度,用法区别如下:1. 含义上的区别:(1) fairly 语气最轻,尽管经常与褒义词连用,但由于语气较弱,往往不带明显的恭维或赞赏,通常

sure与certain的用法区别 certain sure

sure与certain的用法区别一、两者在用法上的相同点两者都可用作表语,表示“一定”或“确信”,有时可互换。互换的场合应注意以下几点用法:1. 表示说话者的态度或看法即表示说话者自己的态度或看法,其意为“一定会”“肯定会”。此时

matlab中holdon与holdoff的用法 示波器holdoff

hold on 是当前轴及图形保持而不被刷新,准备接受此后将绘制hold off 使当前轴及图形不在具备被刷新的性质hold on 和holdoff,是相对使用的前者的意思是,你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存,都看得

声明:《c语言static与extern的用法 c语言extern用法举例》为网友人生如梦分享!如侵犯到您的合法权益请联系我们删除