请问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) 中被引用

正确的编写是什么样的呢?
展开
 我来答
wang433
2012-11-08 · TA获得超过969个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:126万
展开全部
其实很简单了:
注意两个问题:
第一,注意重复引用的问题,要这样定义头文件

//aaa.h
#ifndef aaa
#define aaa

int max(int a, int b);

#endif

第二,要确保aaa.h,aaa.c与main.c在同一个项目或工程中。
追问
这个我知道,因为感觉这个工程里用不到#ifndef...这类定义就没写上。刚才发现mian文件的扩展名是cpp,改成c之后就能顺利连接了,请问是否文件的扩展名也会影响连接?
追答
是的,如果在VC中,肯定是这样的。
玩笑求问
2012-11-08 · TA获得超过113个赞
知道答主
回答量:132
采纳率:100%
帮助的人:84.3万
展开全部
你加了个extern申明一下
更多追问追答
追问
还是报错,错误提示没变化
追答
这些文件你是放在同一个文件夹下的吗?extern是加在函数定义时,如:
extern int max(int a, int b)
{
if(a > b)
return a;
else
return b;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式