引用自定义头文件时时出错
编译器VS2010头文件内容:externintadd(intnum1,intnum2){return(num1+num2);}externintsub(intnum1,...
编译器VS2010
头文件内容:
extern int add(int num1,int num2){
return (num1+num2);}
extern int sub(int num1,int num2){
return (num1-num2);}
extern int mul(int num1,int num2){
return (num1*num2);}
extern int dvd(int num1,int num2){
return (num1/num2);}
源文件内容:
#include <stdio.h>
#include "h.c"
int main(void)
{
int a,b,res;
int (*ptr)(int,int);
char ch;
printf("input:");
scanf("%d%c%d",&a,&ch,&b);
switch(ch)
{
case '+':ptr=add; break;
case '-':ptr=sub; break;
case '*':ptr=mul; break;
case '/':ptr=dvd; break;
default:printf("error!\n");return 0;
}
res=(*ptr)(a,b);
printf("%d%c%d's resual=%d\n",a,ch,b,res);
return 0;
}
提示:
1>z.obj : error LNK2005: _add 已经在 h.obj 中定义
1>z.obj : error LNK2005: _sub 已经在 h.obj 中定义
1>z.obj : error LNK2005: _mul 已经在 h.obj 中定义
1>z.obj : error LNK2005: _dvd 已经在 h.obj 中定义
不知是编译器问题还是代码问题....
C语言.... 展开
头文件内容:
extern int add(int num1,int num2){
return (num1+num2);}
extern int sub(int num1,int num2){
return (num1-num2);}
extern int mul(int num1,int num2){
return (num1*num2);}
extern int dvd(int num1,int num2){
return (num1/num2);}
源文件内容:
#include <stdio.h>
#include "h.c"
int main(void)
{
int a,b,res;
int (*ptr)(int,int);
char ch;
printf("input:");
scanf("%d%c%d",&a,&ch,&b);
switch(ch)
{
case '+':ptr=add; break;
case '-':ptr=sub; break;
case '*':ptr=mul; break;
case '/':ptr=dvd; break;
default:printf("error!\n");return 0;
}
res=(*ptr)(a,b);
printf("%d%c%d's resual=%d\n",a,ch,b,res);
return 0;
}
提示:
1>z.obj : error LNK2005: _add 已经在 h.obj 中定义
1>z.obj : error LNK2005: _sub 已经在 h.obj 中定义
1>z.obj : error LNK2005: _mul 已经在 h.obj 中定义
1>z.obj : error LNK2005: _dvd 已经在 h.obj 中定义
不知是编译器问题还是代码问题....
C语言.... 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询