多文件程序(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); }
相关文章推荐
- 用extern对外部变量作提前引用声明,以扩展程序文件的作用域.Cpp
- C程序设计语言- 函数与程序结构-3.1----函数的基本知识、外部变量、作用域规则、头文件
- C变量(auto、static、register、extern)函数(内部、外部)与存储
- maven配置环境变量提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件
- C 程序的外部变量与函数(extern)
- 防止头文件被重复包含、extern、变量定义与声明的区别
- Windows7中Java64位环境变量配置:javac不是内部命令或外部命令,也不是可运行的程序或批处理文件。
- 【Xcode学C-6】宏定义#define、条件编译#if、文件包含、内部外部函数以及typedef的用法
- 为什么要用到extern 声明 include所包含的程序中的函数?
- 6.C++ 宏定义、文件包含、条件编译、内部函数和外部函数
- 不同存储类型的变量的声明、内部函数、外部函数
- 解决jdk环境变量设置完后,在cmd中运行javac出现’javac‘不是内部或外部命令,也不是可运行的程序或批处理文件的错误提示
- c语言,全局变量,局部变量,外部函数,内部函数,stasic和extern的复习总结
- maven配置环境变量提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件
- 解决jdk环境变量设置完后,在cmd中运行javac出现’javac‘不是内部或外部命令,也不是可运行的程序或批处理文件的错误提示
- 日常总结(十一)maven配置环境变量提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件
- 不是内部或外部命令,也不是可运行的程序或批处理文件。
- C 程序的外部变量与函数
- 解决svnserve --version输入后出现的不是内部或外部命令,也不是可运行的程序或批处理文件的问题
- 解决Error: ‘nmake’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”