Вопрос по #include
- Войдите на сайт для отправки комментариев
Сб, 15/02/2020 - 21:54
Не понятно как работает директива #include в среде ARDUINO !!
По описанию языка Си, директива #include просто вставляет текстовый файл с текущий файл.
Но в среде ARDUINO это не получается.
Как только у включаемого файла будет расширение отличное от "*.h" - среда сообщает (пример "pr.hhh")
= файла нет = типа = probs:28:21: error: pr.hhh: No such file or directory
Как только у файла делаю расширение "*.h" = все компилируется нормально.
Почему ???
Вот простой пример содержимого включаемого файла =
pr.h
Serial.println(" RERERERE ** !! ");
и сама программа куда он включается для пробы
byte bt;
void loop()
{
while (Serial.available()==0) {}
bt=Serial.read();
#include "pr.h"
}
Что это за особенности среды ардуино и где это описано, прошу помочь разобраться.
Добавлю. Не точно описал.
Расширение одинаковые "h" или "hhh" как в описание include так и в самом включаемом файле.
В среде полно дурацких модификаций языка и это нигде не написано. Хочешь чего-то отличающегося от детской игрушки - используй другую среду.
Вот простой пример содержимого включаемого файла =
pr.h
Ну, нечестный же, чё?
Ну, нечестный же, чё?
Ступил, а так?
Вот простой пример содержимого включаемого файла =
byte bt;
В 5-й строке
Wasq, а чем вас не устраивают файлы .h?
С чего вы взяли , что в include можно вставлять файлы с произвольными расширениями?
Думаю вам стоит почитать как используются директивы include в стандартном С, вы очень мало в этом понимаете
Два замечания.
Для блюпил компилируется и .h и .hhh
Для наны компилируется с .hhh если в кавычках указать файл с полным путём. Так что расширение может быть любым.
Ок.Спасибо nik182 !!
Указал полный путь и свершилось чудо ! Среда ест файл с любым расширением и без оного !!
Без полного пути среда есть только с расширением "*.h", хотя он в каталоге исходного файла
Зачем это надо мне - другой вопрос = к этому делу не относиться.
Для тех кто думает, что можно использовать только с "*.h" = приведу классическое описание #include =
Директива #include
Директива #include позволяет включать в текст программы указанный файл. Если файл является стандартной библиотекой и находится в папке компилятора, он заключается в угловые скобки <>.
Если файл находится в текущем каталоге проекта, он указывается в кавычках "". Для файла, находящегося в другом каталоге необходимо в кавычках указать полный путь.
#include "func.c"
Нет конечно не только *.h. Но то Си, а не виринг. В ардуине пробуйте *.inc, когда-то с ним работало.
Ну а это , просто что бы было.
melody.h
pitches.h