Я не уверен, как объявить глобальный союз в C. Ниже мой код (все это не является основным).Объявление глобальных объединений в C
typedef union{
int iVal;
char* cVal;
} DictVal;
struct DictEntry{
struct DictEntry* next;
char* key;
DictVal val;
int cTag;
};
DictVal find(char* key);
int main()
{
struct DictEntry dictionary[101];
//printf("Hello");
}
DictValue find(char* key)
{
DictVal a;
a.iVal = 3;
return a;
}
С этим, я получаю сообщение об ошибке:
test.c:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘find’.
Как я могу объявить союз таким образом, что я могу использовать его в качестве типа возвращаемого значения для функции?
Заранее благодарю вас! Andrew
Не следует читать typedef union DictVal { int iVal; char * cVal; } DictVal; ? – blueberryfields
Вы уверены? Только этот фрагмент прекрасно компилируется. – ephemient
@blueberryfields - Нет, это просто анонимный союз, который является 'typedef'-ed в имя. –