Перейти к содержанию
    

Область видимости в хидерах

AVR Seudio4 + WinAVR.  Кусок простого кода Main.c :

 

#include <avr/interrupt.h>						//Не лезит в Main.h
#include "Main.h"

extern void SendX10Command (int House, int Unit, int Command);
extern void Pulse1ms (void);					//Задержка 1мс
volatile unsigned int Strob = 0;				//секундный строб

Если я перевожу #include <avr/interrupt.h> в хидер, он становится невидим в Main.c. Впрочем как и другое ниже этой строки. Причем объявление

volatile unsigned char ZC = 0;					//Флаг ZC

Вполне успешно прописалось в хидере и используется. В чем причина такого поведения? Помогите пожалуйста. Закипел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Информации недостаточно. Чудес не бывает. Урежьте проект до минимума, в котором эффект повторяется и выложите сюда архивом. Может в процессе урезания найдете ошибку самостоятельно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, Димон Безпарольный said:

Причем объявление


volatile unsigned char ZC = 0;					//Флаг ZC

Вполне успешно прописалось в хидере и используется.

В заголовочные файлы можно только объявления помещать, а здесь - инициализация! Если main.h будет еще где-то включен, получите проблемы.

А так — Сергей правильно сказал. Начните с предоставления MWE (minimal working example). На SO первое, что просят от новичка — предоставить MWE, чтобы можно было понять проблему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения за кипеж. Дело было в отсутствии сохранения изменений. При компиляции текущие изменения почему - то не принимались компилятором в расчет без сохранения. Это на 64-битной машине. Ранее такого глюка я не наблюдал. Еще раз прошу прощения.

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...