c - 我有以下 gcc 编译警告

标签 c gcc gcc-warning

  symbol.h:179: note: expected ‘uintptr_t *’ but argument is of type ‘PRECEDENCE’

对应的代码是:

176 void            symbol_SetCount(SYMBOL, unsigned long);
177 unsigned long   symbol_GetCount(SYMBOL);
178 
179 size_t             symbol_Ordering(uintptr_t*, SYMBOL);
180 
181 void            symbol_CheckIndexInRange(int);
182 void            symbol_CheckNoVariable(SYMBOL);

符号定义为:

typedef size_t SYMBOL

我们将不胜感激任何努力。

PRECEDENCE 修改为:

typedef int *PRECEDENCE;


int        symbol_Ordering(PRECEDENCE, SYMBOL);

这里是 symbol_Ordering 的一些附加信息:

 if (symbol_Equal(propSymbol, eml_Id())) 
{  /* Arguments should be nil, propositional */
symbol_SetOrdering(Precedence, fol_Equality(), symbol_Ordering(Precedence, eml_Id()));
return eml_RplacWithOpAndArgs(Atom, fol_Equality(), Args)}

int  symbol_ORDERING;


int symbol_GetIncreasedOrderingCounter(void)

{ 返回符号_ORDERING++;

 static __inline__ BOOL symbol_PrecedenceGreater(PRECEDENCE P, SYMBOL S1, SYMBOL S2)
{
return symbol_Ordering((uintptr_t*)P, S1) < symbol_Ordering((uintptr_t*)P, S2);
 }

 size_t             symbol_Ordering(uintptr_t*, SYMBOL);

最佳答案

看起来您有多个 symbol_Ordering 声明 - 一个采用 uintptr_t*,一个采用 int*uintptr_t*int* 不是同一类型(一个是有符号的,一个是无符号的),所以不要那样做。使类型匹配。

关于c - 我有以下 gcc 编译警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2428562/

相关文章:

c - 未知操作码 '.pword'

c - 在 OSX 上将 Mosquitto 与 gcc 链接

c++ - 如何在 vim 的 SysntasticCheck 中显示所有 "g++ -Wall "错误警告?

c - 如何使用 linux 内核中的 lockdep 功能进行死锁检测

c - 如何为 GCC 添加/指定预定义宏?

c - 有没有办法从 bash 脚本中执行编译后的 C 代码?

haskell - cabal 错误: invalid preprocessing directive #-}

c - 如何让 GCC 在进行函数调用时警告参数数量不匹配?

c - 如何禁用任务栏中的 'Close Window' 选项?

c - 按位 & 和 I