C语言之跨文件使用函数和变量

  • Post author:
  • Post category:其他

跨文件使用函数和变量

这是主函数的代码:

#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 版权协议,转载请附上原文出处链接和本声明。