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

 
 
> Ошибка при объявлении структуры
zheka
сообщение May 4 2013, 12:06
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Господа, есть у меня такая штуку в файле main.c:
Код
#include "lib.h"
GPIO_InitTypeDef GPIO_InitStructure;
void main()
{
}


и есть файл lib.c, в котором я тоже хочу использовать GPIO_InitStructure.

Но если я обращаюсь в lib.c к GPIO_InitStructure, то компилятор считает, что GPIO_InitStructure is undefined

Если же я в lib.c добавляю GPIO_InitTypeDef GPIO_InitStructure;, то пишет, мол, два раза структура объявлена.

Как нужно прописать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
_Артём_
сообщение May 4 2013, 12:15
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(zheka @ May 4 2013, 15:06) *
Господа, есть у меня такая штуку в файле main.c:
Код
#include "lib.h"
GPIO_InitTypeDef GPIO_InitStructure;
void main()
{
}


и есть файл lib.c, в котором я тоже хочу использовать GPIO_InitStructure.
Как нужно прописать?

Добавьте в lib.c
Код
extern GPIO_InitTypeDef GPIO_InitStructure;
Go to the top of the page
 
+Quote Post
zheka
сообщение May 4 2013, 12:27
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Спасибо. ПОлучилось, но почти.
Если сделать так
Код
main.c
GPIO_InitTypeDef GPIO_InitStructure;
unsigned char one_wire_byte[9]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

Код
lib.c
extern GPIO_InitTypeDef GPIO_InitStructure;
extern unsigned char one_wire_byte[9]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


то на GPIO_InitStructure не ругается,
а на one_wire_byte ругается.

В чем разница?
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 4 2013, 12:35
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(zheka @ May 4 2013, 15:27) *
Спасибо. ПОлучилось, но почти.
то на GPIO_InitStructure не ругается,
а на one_wire_byte ругается.

В чем разница?

Не положено. Синтастис не велит.

lib.c:
Код
extern GPIO_InitTypeDef GPIO_InitStructure;
extern unsigned char one_wire_byte[9];
Go to the top of the page
 
+Quote Post
toweroff
сообщение May 4 2013, 12:40
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(zheka @ May 4 2013, 16:27) *
В чем разница?

Начальная инициализация получается в двух местах одновременно, а это недопустимо
Go to the top of the page
 
+Quote Post
zheka
сообщение May 4 2013, 14:06
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



догадался...
убрал инициализацию - все заработало. Спасибо.

Считайте, что повезло. В следующий раз буду удалять тему сразу же. Пока фантазия не заработает. Тему переименовал и переместил.

Сообщение отредактировал Herz - May 4 2013, 14:26
Причина редактирования: Нарушение п.2.1.в Правил
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 02:44
Рейтинг@Mail.ru


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