構造体での中身代入時になぜかエラー

#include



typedef struct item{
int id;
struct item * next;
}item_t;

void add(struct item * ori, struct item * tar);




/*

oh, my god, I spend 1 hours, why
the hell,
item_t linearList;
linearList.id = 0;
item_t aa;
aa.id = 1;

throws compile error!!, as a solution, I changed the file type from .c to .cpp,
since this is c++ compiler.
I realized this after I compile the same source code with cygwin gcc, and it succeeded,
so i could be sure the source code is okay.