0

这就是我正在做的,但它给了我:“错误:value_t 的类型冲突”

我不确定为什么它不起作用,有人可以帮忙吗?

这是我用于两个程序的头文件中,其中一个正在使用 -DFRACT 运行。

而另一个使用-DINT,并且我没有同时运行-DINT和-DFRACT,那么为什么会导致冲突?

gcc -DFRACT -o program1 program1.c

这就是我运行program1的方式..

对于程序2:gcc -DINT -o program2 program2.c

我还检查了所有其他头文件的重复项,但没有找到,谢谢!

#ifdef INT   
typedef int value_t;   
typedef double Key_t;
#endif


#ifdef FRACT     
typedef  Fraction value_t;  
typedef double Key_t;
#endif
4

1 回答 1

0

您可能打算按照以下方式做一些事情:

#if defined (INT) && defined (FRACT)
  #error both defined
#elif defined (INT)
  typedef int value_t;   
#elif defined (FRACT)
  typedef Fraction value_t;  
#else
  #error neither defined
#endif
于 2020-04-06T08:09:29.177 回答