Не особенно опытный в C, случайно сделал ответственность за небольшой проект микроконтроллера.
Итак, у меня есть структура, которая находится на file1.c.Используется несколькими функциями в этом файле.Он был определен как статическая изменчивая структура Structure прямо сейчас.
Структура объявлена статической, потому что я прочитал в книге под названием «Справочник по кодированию при разработке встроенных систем», что «переменные, к которым обращаются несколько функций, определенных в одном и том же файле, должныбыть объявлено со статическим в области видимости файла ".Ну, он используется несколькими функциями, и я хочу, чтобы он основывался на файлах, поэтому я подумал, что он соответствует этому описанию.Волатильно, потому что он поддерживает некоторые операции чтения AD из некоторых портов.
У меня также есть файл file2.c, которому требуется доступ к значениям той же структуры.
Насколько я понимаю, у меня есть следующие варианты:
- в file1.h, определить эту структуру как extern, получить доступ к #include file1.h в file2.c и получить к ней доступ.Насколько я понимаю, это сделает структуру видимой для всего file2.c, хотя она понадобится только 1 функции
- , чтобы сохранить структуру как есть, и сделать функцию в file.2, которая принимаетструктурируйте по ссылочной функции (Structure * struct), сделайте эту функцию доступной из file1.c и просто передайте значение по ref-функции (& struct)
Какой подход является лучшим?Я знаю, что они оба работают, но есть ли конкретная причина, по которой я должен использовать одну, а не другую и т. Д.?
Я хочу уточнить, что структура typedef {variable} находится в другом заголовочном файле, которыйвключается как в file1.c, так и в file и file2.c, поэтому нет сомнений, что файлы распознают структуру.Я спрашиваю, какой лучший способ получить доступ к этой структуре, откуда это необходимо.