Объект структуры в заголовочном файле - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть файл keytab.h в котором объявлен стуктурный тип key, и определен массив keytab этого типа. С этим работают несколько функций, включаю инклудом keytab.h в файлы с функциями на что линкер выдает ошибку, что нашел множественно определенный символ: fatal error LNK1169: one or more multiply defined symbols found вот keytab.h :
Листинг программы
  1. #ifndef KEYTAB_H
  2. #define KEYTAB_H
  3. struct key {
  4. char *word;
  5. int count;
  6. } keytab[] = {
  7. "auto", 0,
  8. "break", 0,
  9. "case", 0,
  10. "char", 0,
  11. "const", 0,
  12. "continue", 0,
  13. /* ... */
  14. "union", 0,
  15. "unsigned", 0,
  16. "void", 0,
  17. "volatile", 0,
  18. "while", 0
  19. };
  20. #endif
Решение проблемы уже нашел, функции работают с типом, а не с массивом, по этому в keytab.h оставил только обьявление структуры, а массив переместил в .c файл с main, но все же интересно почему линкер выдавал ошибку ?

Решение задачи: «Объект структуры в заголовочном файле»

textual
Листинг программы
  1. #include "keytab.h"
  2. void f2 () {
  3.  keytab[1].count= 35;
  4. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы