关于函数的模块化
file1.c:#include<stdio.h>
extern void enter_string(char str[]);
extern void delete_string(char str[],char ch);
extern void print_string(char str[]);
void main(void)
{
char c;
char str[80];
enter_string(str);
scanf("%c",&c);
delete_string(str,c);
print_string(str);
}
file2.c:
#include<stdio.h>
void enter_string(char str[80])
{
gets(str);
}
file3.c:
#include<stdio.h>
void enter_string(char str[],char ch)
{
int i,j;
for(i=0,j=0;str[i]!='\0';i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]='\0';
}
file4.c:
#include<stdio.h>
void print_string(char str[])
{
printf("%s\n",str);
}
这几个c文件都能独立的编译,但是为什么不能连一起呢?就是怎么模块化?
我只是把分别新建它们,然后放在同一个目录下。组建file1.c的时候出现
file1.obj : error LNK2001: unresolved external symbol _print_string
file1.obj : error LNK2001: unresolved external symbol _delete_string
file1.obj : error LNK2001: unresolved external symbol _enter_string
Debug/file1.exe : fatal error LNK1120: 3 unresolved externals
执行 link.exe 时出错.