繁体   English   中英

我有以下gcc编译警告

[英]I have a following gcc compilation 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);

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)

{return symbol_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*的类型不同(一个是带符号的,一个是无符号的),所以不要那样做。 使类型匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM