Компилятор говорит, что список параметров неверен, а затем в следующем предложении говорит, что функция является неразрешенным внешним символом? Как это возможно? Как исправить? - PullRequest
0 голосов
/ 11 июля 2020

Меня это смущает. Компилятор жалуется на неразрешенный внешний символ ... но если я добавлю к нему параметр, он все равно узнает, что нужно жаловаться на добавленный параметр.

введите описание изображения здесь

Определение функции с типами и макросами в util.h (который уже включен в заголовок, который я включаю, и я пытался включить себя):

typedef u32 ticks_t;

#define TICK_DIFF(a,b) ((signed int)(((a)<<1)-((b)<<1))>>1)
#define TICK_GT(a,b) (TICK_DIFF(a,b) > 0)
#define TICK_MAKE(a) ((a) & 0x7fffffff)

ticks_t current_ticks(void);

Итак, current_ticks () не работает, но макросы и типы из того же заголовка работают:

ticks_t now = TICK_MAKE(current_ticks());//does not complain about ticks_t or TICK_MAKE, 
//but does complain about current_ticks??
TICK_DIFF(now,p->lastdeath);//no complaining at all??

Есть идеи, что здесь происходит?

...