я случайно написал foo ((struct Node*) head);
вместо foo ((Node*) head);
Вводят сообщение
И я получил сообщение от компилятора
expected 'struct Node *' but argument is of type 'struct Node *'
#include <stdio.h>
typedef struct NODE
{
char data;
struct NODE *next;
} Node;
void foo (Node *head){}
void bar (void *head)
{
// note:
foo ((struct Node*) head);
}
int main(){
return 0;
}
Это вводит в заблуждение, она не должна быть Node *
или struct NODE *
в первом случае?
Что означает это сообщение? Может ли кто-нибудь прояснить это?
Я могу воспроизвести его here тоже после намеренного помещения ошибки.
Компилятор: GCC (GCC) 4.8.1