c语言 头文件中放函数实体 两个c文件同时引用会报错:找到一个或多个重定义的符号
c语言头文件中放函数实体两个c文件同时引用会报错:找到一个或多个重定义的符号为什么会报这个错在js中我可以将一个方法打包在一个外部的js中然后到处引用这个不是这样??...
c语言 头文件中放函数实体 两个c文件同时引用会报错:找到一个或多个重定义的符号
为什么会报这个错 在js中 我可以将一个方法打包在一个外部的js中 然后到处引用 这个不是这样?? 展开
为什么会报这个错 在js中 我可以将一个方法打包在一个外部的js中 然后到处引用 这个不是这样?? 展开
2个回答
展开全部
C语言头文件中一般只进行函数声明,函数实现一般另写在文件中,这样引用头文件就不会报重复定义了。
你的两个c文件在一个工程中,同时引用你定义的那种,在编译时,两个c文件都会将这段代码(头文件中的)展开到你的c文件中,因此,会报重复定义
你的两个c文件在一个工程中,同时引用你定义的那种,在编译时,两个c文件都会将这段代码(头文件中的)展开到你的c文件中,因此,会报重复定义
追问
我知道解决 的办法 我只是想不通 我用在两个c文件中define引用,在编译的时候应该会将两个文件分别编译 怎么会冲突
追答
你的两个c文件在一个工程中,就会在链接时有冲突!
如果不在同一个工程中,则不会有问题!
展开全部
解决办法是,把你的头文件的开头加入:
#ifndef XXX_H
#define XXX_H
头文件的结尾加入:
#endif
这里XXX可以是任意的,一般是用头文件的名称。
#ifndef XXX_H
#define XXX_H
头文件的结尾加入:
#endif
这里XXX可以是任意的,一般是用头文件的名称。
追问
我知道解决 的办法 我只是想不通 我用在两个c文件中define引用,在编译的时候应该会将两个文件分别编译 怎么会冲突
追答
C语言中不允许在一个工程中出现重复的函数名,变量名,文件名。
你把同一个头文件引用两次,就会导致工程中出现同名的函数。
C语言中这是不允许的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询