gpt4 book ai didi

使用头文件和 makefile 的 C 函数的冲突类型

转载 作者:行者123 更新时间:2023-11-30 19:33:06 26 4
gpt4 key购买 nike

我正在使用 C 的 makefile,当它只有 main.c 和 data.h 时,它就可以工作,但是一旦我向 data.h 添加了一个函数头,并为该函数添加了一个实际定义了该函数的文件,它就可以工作了。在编译时开始出错。

我有:

/* main.c */
#include "data.h"
int main () { /* this is empty */ }

/* data.h */
char foo(char);

/* foo.c */
#include "data.h"
char foo(char){
...
}

我得到的错误是 conflicting types for 'foo'note: previous declaration of 'foo' .

遇到此问题的其他人曾尝试在声明函数之前使用该函数或类似的内容,但我似乎找不到此示例中出现的情况。

最佳答案

错误消息听起来像是data.h中的foo签名与foo.c中的签名不同

例如

char foo(char);

char foo(char*);

// missing return type may produce a different/additional warning/error, depending on the compiler
foo(char);

检查冲突声明的具体位置并进行比较。

关于使用头文件和 makefile 的 C 函数的冲突类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46384393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com