收藏1 举报
int a ; int main() { int b ; int c* = (int *)malloc(sizeof(int)); } a是全局变量,b是栈变量,c是堆变量。 static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。
static int i; //只在a文件中用 int j; //在工程里用 static void init() //只在a文件中用 { } void callme() //在工程中用 { static int sum; }
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; void callme(); } int main() { callme(); }
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
133
715
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号