Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Объявление структуры в .h файле


Автор: supercelt 24.9.2017, 01:13
Здравствуйте. Язык СИ. Имеется файл rtc.h

Код

#ifndef RTC_H
#define RTC_H
#include "stm32f4xx.h"  
typedef struct{
uint8_t rtc_hours;
uint8_t rtc_minutes;
uint8_t rtc_seconds;
}rtc_struct;
rtc_struct hook;
#endif


и файл rtc.c

Код

#include "rtc.h"
#include <stdio.h>
typedef struct{
uint8_t rtc_hours;
uint8_t rtc_minutes;
uint8_t rtc_seconds;
}rtc_struct;
rtc_struct hook;
hook.rtc_hours = 9;


Этот код конечно же неправильный. Я уже по всякому писал и так и сяк
Даже просто взял пример и скопировал как есть .с файл:

Код

      struct myStruct
      {
        int nInt;
        double dDouble;
        char cChar;
        char *szString;
      };

        struct myStruct sStruct;
        sStruct.nInt = 150;


Выводит ошибку, что  sStruct - неизвестный тип.
Вопрос как и что правильно расписать в этих двух файлах?
Заранее благодарен

Программа Keil uVision, СИ под микроконтроллер

Автор: volatile 24.9.2017, 08:02
Да все правильно, только лишнее повторение.

Цитата(supercelt @  24.9.2017,  01:13 Найти цитируемый пост)
как и что правильно расписать в этих двух файлах?

rtc.h
Цитата(supercelt @  24.9.2017,  01:13 Найти цитируемый пост)
#ifndef RTC_H
#define RTC_H
#include "stm32f4xx.h"
typedef struct{
uint8_t rtc_hours;
uint8_t rtc_minutes;
uint8_t rtc_seconds;
}rtc_struct;
rtc_struct hook; 
#endif 


rtc.с
Цитата(supercelt @  24.9.2017,  01:13 Найти цитируемый пост)
#include "rtc.h"
#include <stdio.h>
typedef struct{
uint8_t rtc_hours;
uint8_t rtc_minutes;
uint8_t rtc_seconds;
}rtc_struct;
rtc_struct hook;
hook.rtc_hours = 9; // <== последняя строка должна быть где-то в функции


Скорей всего компилятор писал что структура уже определена, а не неизвестный тип.
(приводите точное сообщение об ошибках)

Автор: supercelt 24.9.2017, 17:22
спасибо, заработало

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)