您的位置:首页 > 其它

多文件程序(extern声明、内部函数、外部函数、外部变量、文件包含)

2009-06-30 00:22 357 查看
/*--------------------090629-3.c--------------------*/
#include <stdio.h>

#include "enter_string.c"		//运行多文件程序时,需要使用include关键字将多个文件包含到本文件中。
#include "delete_string.c"		//上同。
#include "print_string.c"		//上同。

#define N 50

extern n;	//声明外部变量。外部变量n是delete_string.c源文件中的一个全程变量(或称外部变量、全局变量)

char del_char;	//定义个char型的全局变量(或称全程变量、外部变量)
int test=52;	//定义一个int型的全局变量(或称全程变量、外部变量)

void main()
{
extern enter_string(char string[]);	//如果外部函数的函数类型为非int型(函数名称前未加类型关键字的缺省为int型),则在使用extern对外部函数作声明时,一定要在extern的后面把外部函数的函数类型关键字添上。
extern delete_string(char string[],char);	//上同,使用extern声明外部函数。否则系统报错。
extern print_string(char string[]);	//上同,使用extern声明外部函数。否则系统报错。

char string
;
printf("请输入一个字符串:");
enter_string(string);	//调用通过extern作声明的外部函数
puts(string);	//puts()函数的括号内可以是变量,也可以是字符串。puts()函数本身自带换行功能。
printf("请输入要删除的字符:");
del_char=getchar();
delete_string(string,del_char);	//调用通过extern作声明的外部函数
print_string(string);	//调用通过extern作声明的外部函数
puts("/n多源文件组合运行成功!");	//puts()函数的括号内可以是字符串,也可以是变量。
}

/*--------------------enter_string.c--------------------*/
char xyz[]="I love /'C/' very much";//char型外部变量——数组。/'表示输出单引号,/"表示输出双引号

enter_string(char string[50])
{
gets(string);//输入字符串
}

/*--------------------delete_string.c--------------------*/
int n;//非static型外部变量(或称全局变量),允许被其他文件中调用

delete_string(char string[50],char ch)
{
int i,j;
for(i=j=0;string[i]!='/0';i++)
if(string[i]!=ch)//如果string[i]不是要删除的字符
string[j++]=string[i];//不可把处行中的j++与for语句的i++写在一起
string[j]='/0';
n=i-j;//计算被删除了多少个ch字符
}

/*--------------------print_string.c--------------------*/
extern char del_char;//用extern关键字对主函数main()中的char型全局变量del_char作外部声明。无需使用include关键字把主调文件“090629-3.c”包含进来,但此处的char必须加上,否则报错。
extern test;//用extern关键字对主函数main()中的int型全局变量test作外部声明。在main()函数中,因为test变量是int型的,所以此处的int关键字可以省略。
extern char xyz[];//xyz[]是“enter_string.c”文件中的全局变量,本应该在本文件中使用include关键字把“enter_string.c”文件包含进来,但因“enter_string.c”已包含到主调文件“090629-3.c”中,所以可以省去本文件中include "enter_string.c"语句而直接使用extern对xyz[]数组作外部声明。

print_string(char string[])
{
printf("共删除了%d个%c~~~~/"%dC/"。/n新字符串是:",n,del_char,test);//n为del_string.c文件中的int型外部变量,del_char为090629-3.c中的char型外部变量,test为090629-3.c中的int型外部变量
puts(string);
printf("%s/n",xyz);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐