Объект структуры в заголовочном файле - C (СИ)
Формулировка задачи:
Есть файл keytab.h в котором объявлен стуктурный тип key, и определен массив keytab этого типа.
С этим работают несколько функций, включаю инклудом keytab.h в файлы с функциями на что линкер выдает ошибку, что нашел множественно определенный символ:
fatal error LNK1169: one or more multiply defined symbols found
вот keytab.h :
#ifndef KEYTAB_H
#define KEYTAB_H
struct key {
char *word;
int count;
} keytab[] = {
"auto", 0,
"break", 0,
"case", 0,
"char", 0,
"const", 0,
"continue", 0,
/* ... */
"union", 0,
"unsigned", 0,
"void", 0,
"volatile", 0,
"while", 0
};
#endif
Решение проблемы уже нашел, функции работают с типом, а не с массивом, по этому в keytab.h оставил только обьявление структуры, а массив переместил в .c файл с main, но все же интересно почему линкер выдавал ошибку ?
Решение задачи: «Объект структуры в заголовочном файле»
textual
Листинг программы
#include "keytab.h"
void f2 () {
keytab[1].count= 35;
}