请问C语言里,怎样写才能正确的连接编译同名的*.h、*.c文件呢?
自己写了个程序测试//mian.c#include<stdio.h>#include"aaa.h"intmain(){inta=10,b=20;printf("%d",m...
自己写了个程序测试
// mian.c
#include <stdio.h>
#include "aaa.h"
int main()
{
int a = 10, b =20;
printf("%d", max(a, b));
}
//aaa.h
int max(int a, int b);
//aaa.c
#include "aaa.h"
int max(int a, int b)
{
if(a > b)
return a;
else
return b;
}
编译器提示出错:
无法解析的外部符号 "int __cdecl max(int,int)" (?max@@$$FYAHHH@Z),该符号在函数 "int __cdecl main(void)" (?main@@$$HYAHXZ) 中被引用
正确的编写是什么样的呢? 展开
// mian.c
#include <stdio.h>
#include "aaa.h"
int main()
{
int a = 10, b =20;
printf("%d", max(a, b));
}
//aaa.h
int max(int a, int b);
//aaa.c
#include "aaa.h"
int max(int a, int b)
{
if(a > b)
return a;
else
return b;
}
编译器提示出错:
无法解析的外部符号 "int __cdecl max(int,int)" (?max@@$$FYAHHH@Z),该符号在函数 "int __cdecl main(void)" (?main@@$$HYAHXZ) 中被引用
正确的编写是什么样的呢? 展开
2个回答
展开全部
其实很简单了:
注意两个问题:
第一,注意重复引用的问题,要这样定义头文件
//aaa.h
#ifndef aaa
#define aaa
int max(int a, int b);
#endif
第二,要确保aaa.h,aaa.c与main.c在同一个项目或工程中。
注意两个问题:
第一,注意重复引用的问题,要这样定义头文件
//aaa.h
#ifndef aaa
#define aaa
int max(int a, int b);
#endif
第二,要确保aaa.h,aaa.c与main.c在同一个项目或工程中。
追问
这个我知道,因为感觉这个工程里用不到#ifndef...这类定义就没写上。刚才发现mian文件的扩展名是cpp,改成c之后就能顺利连接了,请问是否文件的扩展名也会影响连接?
追答
是的,如果在VC中,肯定是这样的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询