1
  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);
4

1 に答える 1

1

の宣言が複数あるようですsymbol_Ordering。1つはaを取り、uintptr_t*もう1つは。を取りますint*uintptr_t*int*同じタイプではないので(1つは署名済み、もう1つは署名なし)、そうしないでください。タイプを一致させます。

于 2010-03-11T21:56:25.407 に答える