C语言多文件编译、连接和运行
C语言多文件编译、连接和运行: 1.编写外部函数对应的头文件: file2.c–>file2.h, file3.c–>file3.h, file4.c–>file4.h, 把这些文件与主程序file1.c放在同一个文件夹下。 file2.h void enter_string(char str[]); file3.h void delete_string(char str[],char ch); file4.h void print_string(char str[]); 2.在主程序file1.c首部引入各个头文件: #include “file2.h” #include “file3.h” #include “file4.h” 3.MinGw编译: gcc file1.c file2.c file3.c file4.c 4.运行a.exe即可。
谭浩强老师案例补充: 有一个字符串,内有若干个字符,现输入一个字符,如果字符串中包含此字符,则把它删去。用外部函数实现。
主程序file1.c #include <stdio.h> #include <string.h>
#include “file2.h” #include “file3.h” #include “file4.h”
int main(void){ extern void enter_string(char str[]); //声明输入函数 extern void delete_string(char str[],char ch);//声明删除函数 extern void print_string(char str[]);//声明打印函数
char c;//准备删除的字符
char str[80];//定义字符数组
enter_string(str); //调用输入字符串函数
printf("输入要删除的字符: ");
scanf("%c",&c);
delete_string(str,c);//调用删除字符函数
print_string(str); //调用删除函数
return 0;
}
外部程序 file2.c #include <stdio.h> void enter_string(char str[]){ printf("输入字符串: "); gets(str); }
外部程序 file3.c #include <stdio.h> void delete_string(char str[],char ch){ int i;//循环变量 int j;//未被删除的字符 for(i=j=0;str[i]!=’ ’;i++){ if(str[i]!=ch){ str[j++]=str[i]; } } str[j]=’ ’; }
外部程序 file4.c #include <stdio.h> void print_string(char str[]){ printf("%s ",str); }
