реклама на сайте
подробности

 
 
> Как сослаться на структуру typedef struct?, Из другого файла
Димон Безпарольн...
сообщение Jun 20 2017, 09:27
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



В одном хидере объявлена структура:

Код
typedef struct ADC_my2 {            //Структура для хранения сырых значений
    uint16_t    ADC_CH0;            //
    uint16_t    ADC_CH1;            //
    uint16_t    ADC_CH2;            //
    uint16_t    ADC_CH3;            //
    uint16_t    ADC_CH4;            //    
    uint16_t    ADC_CH5;            //
    uint16_t    ADC_CH6;            //
    uint16_t    ADC_CH7;            //    
}ADC_my;                            //
ADC_my ADC_RAW;                        //


Для того, чтобы были доступны ее элементы из другого файла нажно в его хидере объявить эту структуру как extern. Если я правильно понимаю. Как это сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Димон Безпарольн...
сообщение Jun 20 2017, 09:37
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Не получается однако. Я так уже пробовал. Потому и спросил.

Код
../Src/stm32l1xx_it.c(91): error:  #20: identifier "ADC_my" is undefined
Go to the top of the page
 
+Quote Post
novikovfb
сообщение Jun 20 2017, 09:40
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 518
Регистрация: 29-09-11
Пользователь №: 67 450



Цитата(Димон Безпарольный @ Jun 20 2017, 13:37) *
Не получается однако. Я так уже пробовал. Потому и спросил.

Код
../Src/stm32l1xx_it.c(91): error:  #20: identifier "ADC_my" is undefined

что-то Вы умалчиваете.
В хедере должно быть объявление типа структуры и extern объявление переменной. Этот хедер должен подключаться во все файлы, где используется эта структура. В одном из файлов должна быть размещена эта струкутра, т.е. объявление переменной без extern, хедер этому мешать не будет.
Go to the top of the page
 
+Quote Post
Димон Безпарольн...
сообщение Jun 20 2017, 09:52
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Цитата(novikovfb @ Jun 20 2017, 12:40) *
что-то Вы умалчиваете.
В хедере должно быть объявление типа структуры и extern объявление переменной. Этот хедер должен подключаться во все файлы, где используется эта структура. В одном из файлов должна быть размещена эта струкутра, т.е. объявление переменной без extern, хедер этому мешать не будет.

Возможно умалчиваю потому, что не понимаю механизма.

В каком хедере должно быть объявление типа структуры? У меня в одном хедере размещена структура, в другом - я на нее сослался с помощью extern. Но получил ошибку (выше). Что я сделал неправильно?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Димон Безпарольный   Как сослаться на структуру typedef struct?   Jun 20 2017, 09:27
- - Genadi Zawidowski   В хидеое должно быть так: extern ADC_my ADC_RAW; ...   Jun 20 2017, 09:29
|- - scifi   Цитата(Genadi Zawidowski @ Jun 20 2017, 12...   Jun 20 2017, 09:33
||- - novikovfb   Цитата(Димон Безпарольный @ Jun 20 2017, 13...   Jun 20 2017, 09:59
||- - Димон Безпарольный   Цитата(novikovfb @ Jun 20 2017, 12:59) Ни...   Jun 20 2017, 10:01
||- - Сергей Борщ   QUOTE (Димон Безпарольный @ Jun 20 2017, 13...   Jun 20 2017, 10:06
||- - Димон Безпарольный   Цитата(Сергей Борщ @ Jun 20 2017, 13:06) ...   Jun 20 2017, 10:08
||- - novikovfb   Цитата(Димон Безпарольный @ Jun 20 2017, 14...   Jun 20 2017, 10:15
||- - Димон Безпарольный   Цитата(novikovfb @ Jun 20 2017, 13:15) Об...   Jun 20 2017, 10:27
|- - Mareng   Цитата(Димон Безпарольный @ Jun 20 2017, 16...   Jun 20 2017, 09:41
|- - novikovfb   Цитата(Mareng @ Jun 20 2017, 13:41) Возмо...   Jun 20 2017, 09:43
- - Непомнящий Евгений   Код// a.h typedef struct A {int f; } AA; extern AA...   Jun 20 2017, 10:34
- - Lagman   В .h (для примера main.h) файле обычно находится о...   Jun 20 2017, 11:16
|- - novikovfb   Цитата(Lagman @ Jun 20 2017, 15:16) В дру...   Jun 20 2017, 11:27
|- - Lagman   Цитата(novikovfb @ Jun 20 2017, 14:27) ex...   Jun 20 2017, 11:30
|- - novikovfb   Цитата(Lagman @ Jun 20 2017, 15:30) Можно...   Jun 20 2017, 12:00
- - Димон Безпарольный   Да, спасибо. Так все заработало. В хидере: Кодty...   Jun 20 2017, 11:32
- - Lagman   Цитата(Димон Безпарольный @ Jun 20 2017, 14...   Jun 20 2017, 11:36


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016