跨文件使用函数和变量
这是主函数的代码:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
extern int g_a;//对外部全局变量作说明
//这个必须放在本文件开头
//static void lookvalue2(){//这个函数只能在本文件中使用
//
// extern int c1,c2;//本文件中
// c1 = 51;
// c2 = 72;
// printf("hello");
//
//}
//此函数在别的文件内 但是前面加不加extern都可以
void lookvalue2();
int c1,c2;
int main(int argc, char *argv[]) {
//引用其他文件里的全局变量
printf("g_a:%d\n",g_a);
//函数的跨文件调用
//我们根据函数能否被其他源文件调用 我们将函数分为内部函数和外部函数
//内部函数:只能被本文件中其他函数调用 定义内部函数时 在函数定义最前面加一个static.
//形式如下:
//static 类型标识符 函数名(形参表){...}
//内部函数又被成为"静态函数" 使用这种内部函数的话 可以使函数只局限于所在文件 其他文件访问不了
//如果此函数在其他文件 并且有static修饰 在此就会访问不了
lookvalue2();
//外部函数 如果一个函数定义 你不用static 他就是外部函数 当定义外部函数时 你可以在前面添加一个extern 但是默认加不加都行
return 0;
//static总结:
//1 函数内部定义一个变量时使用static 则该变量会保存在静态存储区 在编译时初始化
//如果不给初始值 他的值会被初始化为0 并且下次调用该函数时 该变量保持上次离开该函数的值
//2 在全局变量之前添加 会导致该全局变量 只能被文件引用 无法在其他文件中引用
//3 在函数定义之前增加static 那么会导致该函数只能在本文件中被调用 无法在其他文件中被调用
}
这是自己定义的函数:里边有想调用的函数和变量:
#include <stdio.h>
#include <stdlib.h>
//在定义全局变量时前面增加static 则该全局变量只能在本文件中使用
int g_a = 7;
//static
void lookvalue2(){//如果带static这个函数只能在本文件中使用 所以是静态函数 就是外部函数
extern int c1,c2;//本文件中
c1 = 51;
c2 = 72;
printf("hello");
}
版权声明:本文为zzugsh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。