c语言中#include XXX.c和XXX.h有什么区别?
例如:我自己写了max.h,里面实现一个max()函数和定义一些宏然后主程序文件fun.c里#include“max.h”运行没问题。然后我把max.h文件改为max.c...
例如:我自己写了max.h,里面实现一个max()函数和定义一些宏
然后主程序文件fun.c里#include“max.h”运行没问题。
然后我把max.h文件改为max.c文件,把#include“max.h”改为#include“max.c”,好像没问题,仔细想想,自己写的.h文件似乎都可以改为.c,也可以同样include,那.c和.h为什么要区分呢? 展开
然后主程序文件fun.c里#include“max.h”运行没问题。
然后我把max.h文件改为max.c文件,把#include“max.h”改为#include“max.c”,好像没问题,仔细想想,自己写的.h文件似乎都可以改为.c,也可以同样include,那.c和.h为什么要区分呢? 展开
展开全部
写了三年代码了,第一次遇到#include "xxx.c"忍不住回答一下这个问题。
首先 .h 头文件,主要提供要对外导出的符号。 .c 源文件,主要提供实现以及实现内部的符号。两者从功能上不一样,但在特定的情况下互换也可以编译通过。
例如,在test.c 中实现了一个test()函数。在source1.c中#include "test.c",然后调用test()是没有一点问题的。但是如果在source1.c和source2.c中都#include "test.c",则大多数编译器下会无法通过编译。因为test()重定义了。
#include "xxx.c"主要还是应用于较大规模的软件中的配置文件,来决定哪些source参与编译,至于那些不需要的,则可以轻易加前缀//
首先 .h 头文件,主要提供要对外导出的符号。 .c 源文件,主要提供实现以及实现内部的符号。两者从功能上不一样,但在特定的情况下互换也可以编译通过。
例如,在test.c 中实现了一个test()函数。在source1.c中#include "test.c",然后调用test()是没有一点问题的。但是如果在source1.c和source2.c中都#include "test.c",则大多数编译器下会无法通过编译。因为test()重定义了。
#include "xxx.c"主要还是应用于较大规模的软件中的配置文件,来决定哪些source参与编译,至于那些不需要的,则可以轻易加前缀//
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询