Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка при объявлении структуры
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
zheka
Господа, есть у меня такая штуку в файле 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;, то пишет, мол, два раза структура объявлена.

Как нужно прописать?
_Артём_
Цитата(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;
zheka
Спасибо. ПОлучилось, но почти.
Если сделать так
Код
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 ругается.

В чем разница?
_Артём_
Цитата(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];
toweroff
Цитата(zheka @ May 4 2013, 16:27) *
В чем разница?

Начальная инициализация получается в двух местах одновременно, а это недопустимо
zheka
догадался...
убрал инициализацию - все заработало. Спасибо.

Считайте, что повезло. В следующий раз буду удалять тему сразу же. Пока фантазия не заработает. Тему переименовал и переместил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.