Объект структуры в заголовочном файле - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д