c - 错误 : conflicting types for ‘whatever’

标签 c gcc embedded mips

我正在开发一个嵌入式系统,它提供特定类型的接口(interface)。

问题是通过包含来自 c 标准库的某些 header ,我得到一个错误:类型冲突

我使用 gettimeofday 并且我只使用 struct timeval,但是为了使用这个 sys/time.h 还拖入了 time_t 干扰系统定义的时间。

我无法触及这两段代码,但我需要它们。

有没有办法解决这些问题? (我应该能够使用系统声明的类型和一些在 c 头文件中声明的函数,这些头文件包含系统已经完成的一些声明。)

最佳答案

您可以使用宏重命名 time_t 类型定义之一,而无需修改任何 header :

#define time_t LIBC_time_t
#include <sys/time.h>
#undef time_t

#include <header_which_defines_the_time_t_you_want.h>

这不能保证有效,但在很多时候确实有效。

关于c - 错误 : conflicting types for ‘whatever’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9847952/

相关文章:

c - 什么情况下time in time.h会失败?

c - 这个字符指针声明是什么意思?

c++ - 为什么这 8 个字节的写入没有优化成一个 MOV?

c - 如果同一个共享库工作正常,为什么静态库会导致对齐问题?

embedded - trace32 - 将多个地址范围的内存转储到单个二进制文件

c - 我怎样才能将每个/proc/net/tcp 条目匹配到每个打开的套接字?

c - 取消排序数组并保留 C 中数组元素的原始顺序

c - 尝试使用 gcc 编译时出错

c++ - std::optional 的运算符重载不明确?

c - newlibc stub 应该如何包含/链接到代码中