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

 
 
> Структуры и CVAVR
Pavel_Bor
сообщение Jul 1 2011, 09:35
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



К примеру существует main.c, lcd.h(описане прототипов) и lcd.c. Возможно ли сделать структуру которую бы видели все файлы и могли ее менять (без указателей).?

typedef struct ww
{
int a;
int b;
} ww_t;

Сообщение отредактировал Pavel_Bor - Jul 1 2011, 09:36
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dog Pawlowa
сообщение Jul 1 2011, 09:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Pavel_Bor @ Jul 1 2011, 12:35) *
Возможно ли сделать структуру которую бы видели все файлы и могли ее менять (без указателей).?


А что, там настолько необычный С? Или в школку не ходили? wink.gif

Код
H:
typedef struct {
...
} my_type;

extern my_type my_struct;

C:
my_type my_struct;


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Pavel_Bor
сообщение Jul 1 2011, 09:52
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



Цитата(Dog Pawlowa @ Jul 1 2011, 12:48) *
А что, там настолько необычный С? Или в школку не ходили? wink.gif

Код
H:
typedef struct {
...
} my_type;

extern my_type my_struct;

C:
my_type my_struct;


писал точно также:

Код
typedef struct {
    uint8_t seconds;
    uint8_t minutes;
    uint8_t hours;
    uint8_t day;
    uint8_t month;
    uint16_t year;
      
} RTC_BCD_t;

extern RTC_BCD_t rtcTime;


вызов из-того же файла идет нормальный но вот из любого другого.. Например void function(RTC_BCD_t rtcTime); которая находится в lcd.h, выдает ошибку на undefined symbol.
При попытке описать структуру в lcd.h на первой строке объявления переменной пишет declaration syntax error.

Сообщение отредактировал Pavel_Bor - Jul 1 2011, 09:53
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 1 2011, 10:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Pavel_Bor @ Jul 1 2011, 13:52) *
писал точно также:
Код
extern RTC_BCD_t rtcTime;

вызов из-того же файла идет нормальный но вот из любого другого.. Например void function(RTC_BCD_t rtcTime); которая находится в lcd.h, выдает ошибку на undefined symbol. При попытке описать структуру в lcd.h на первой строке объявления переменной пишет declaration syntax error.


1. Где-то (в каком-то одном файле) ваша структура должна быть без extern
2. Поместить #include "lcd.h" после директив включения/вставки стандартных h-файлов (как минимум того, где определены uint8_t, uint16_t)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:59
Рейтинг@Mail.ru


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