Вот этим колхоз всегда и отличался от интеллигенции :))) Знаниями поделиться это ctr+c ctrl+v, а целину поднять и надои - это совсем другое. Была просьба о совете и помощи, а началось унылое брюзжание. Не хочешь помогать - да пожалуйста, твое личное дело, проходи мимо. А поднимать бздежь о несовершенстве бытия и мерится пипирками программирования это личная инициатива оппозиции :)
Тема поднята хорошая, жаль воды раздули на страницу. А парочка простых примеров помогла бы.
Я вот тоже только учусь синтаксису Си и тоже возникла такая же проблема с вкладками на Arduino IDE :-( (Он их в алфавитном порядке что ль собирает?) Это специфика каждого "нового компилятора", который начинаешь осваивать и конечно не просто любому новичку. Хочу прикрутить LCDMenuLib2 библиотеку к своему проектику. Пример также на вкладках создан. Если я главный файл из примера переименуюв .h? То остальные также переименовать в .h и вставить в главный файл из примера через #include?
Про extern можете пояснить, как правильно применять?
Хочу прикрутить LCDMenuLib2 библиотеку к своему проектику. Пример также на вкладках создан.
посмотрел. Примеры написаны в виде набора .ino файлов. Такой типичный голимый гайверо-стиль...
НЕ знаю, насколько там все грамотно внутри, но думаю, что раз вы задаете эти вопросы - вам не осилить переделку этого примера в .h и .cpp файлы. Попробуйте оставить все файлы примера как .ino, а свой код втавьте в тот файл. где у автора setup() и loop()
Приятно когда за тебя решают, но все же :-)... Я просто не понимаю в какой последовательности компилятор начинает ino собирать. Попробовал даже алфавитную очередность изменить, не помогло.
Ну если забыли про ino. Зона видимости переменных для .h и .cpp тоже не понятна... Просто если в ino есть и переменные и функции, их надо разделить на .h и.cpp файлы? Или можно все в .cpp оставить?
Зона видимости переменных для .h и .cpp тоже не понятна...
Если программирование изучать по форумам разной степени дэбильности, то да. А если взять почитать чонить умное, например K&R, то всё атаматически раскладёцца по полочкам.
Я просто не понимаю в какой последовательности компилятор начинает ino собирать. Попробовал даже алфавитную очередность изменить, не помогло.
я и сам не знаю... и никогда не интересовался за ненадобностью, поскольку не собираю проекты из кучи .ino файлов.
Цитата:
если в ino есть и переменные и функции, их надо разделить на .h и.cpp файлы? Или можно все в .cpp оставить?
Если руководствоваться правилами компоновки Си - из одних только .cpp файлов код не соберется, поскольку функции из одного .cpp не будут ничего знать про функции из других файлов. Но ардуино ИДЕ может и обойдется одними только .cpp - я предпочитаю в рулетку не играть, мне проще сразу писать парами .h и .cpp
Зона видимости переменных для .h и .cpp тоже не понятна...
Если программирование изучать по форумам разной степени дэбильности, то да. А если взять почитать чонить умное, например K&R, то всё атаматически раскладёцца по полочкам.
Зы... Спасибо за книжку и ссылку! Я давно не писал больших проектов (для себя).
Ибо програрммировванние это моё хобби (с детства), а не проф.деятельность. Я уже все понял про ino, осталось разобраться с cpp и h. Как раз зона видимости и беспокоит меня :-( В примере есть глобальные переменные все ж...
посмотрел. Примеры написаны в виде набора .ino файлов. Такой типичный голимый гайверо-стиль...
НЕ знаю, насколько там все грамотно внутри, но думаю, что раз вы задаете эти вопросы - вам не осилить переделку этого примера в .h и .cpp файлы. Попробуйте оставить все файлы примера как .ino, а свой код втавьте в тот файл. где у автора setup() и loop()
А если тезисно: Как последовательно (правильно) поступить чтобы интегрировать в свой код эту библиотеку? Дальше я в нужном направлении уже читать начну :-) А то даже с поиском сложности, ибо проблема формулировок.
b707 пишет:
Если руководствоваться правилами компоновки Си - из одних только .cpp файлов код не соберется, поскольку функции из одного .cpp не будут ничего знать про функции из других файлов. Но ардуино ИДЕ может и обойдется одними только .cpp - я предпочитаю в рулетку не играть, мне проще сразу писать парами .h и .cpp
А чтобы знали надо объявлять прототипы? Или это вообще не туда?
P.S. У меня в планах перейти на более продвинутую среду чем Arduino IDE (поглядываю на PlatformIO хотя...), но пока с интерфейсом разберешься кучу времени надо.
Если руководствоваться правилами компоновки Си - из одних только .cpp файлов код не соберется, поскольку функции из одного .cpp не будут ничего знать про функции из других файлов. Но ардуино ИДЕ может и обойдется одними только .cpp - я предпочитаю в рулетку не играть, мне проще сразу писать парами .h и .cpp
В некоторых случаях предпочитаю что бы собиралось не только с Ардуино IDE, но и со Студии или через Make (наиболее удобно). Ну и файлов всегда много, не зависимо от сложности проекта. Пример простейшего проекта:
main.h основные параметры
power2313.cpp основная программа
sys_timer.h системный таймер
led.h/cpp индикатор
rotary.h/cpp энкодер
ky.h/cpp кнопка
conio.h/cpp отладочная консоль,
uart.h/cpp нижний уровень
io.h, chip.h ввод/вывод
compiler.h компилятор
macro.h макро
binary.h двоичные константы
Makefile сборка
Всем спасибо большое за ответы и комментарии. Нашёл очень хорошую краткую и понятную главу по области видимости. Помогли ключевые слова для запроса из ответов.
Книга, это конечно хорошо но там 70% информации которую я уже знаю по другим языкам программирования :-( Буду вечерами читать.
P.S. Интегрировать пример LCDMenuLib2 все же получилось :-) Библиотека очень понравилась, наглядная и работает отлично, даже с тяжёлой интеграцией Blynk. Остаётся добить NewEncoder, тоже оказалась очень стабильная библиотека для энкодера с хорошими примерами, времени не хватило.
The Arduino development software performs a few transformations to your sketch before passing it to the avr-gcc compiler:
All .ino and .pde files in the sketch folder (shown in the Arduino IDE as tabs with no extension) are concatenated together, starting with the file that matches the folder name followed by the others in alphabetical order. The .cpp filename extension is then added to the resulting file.
If not already present, #include <Arduino.h>is added to the sketch. This header file (found in the core folder for the currently selected board) includes all the definitions needed for the standard Arduino core.
Prototypes are generated for all function definitions in .ino/.pde files that don't already have prototypes. In some rare cases, prototype generation may fail for some functions. To work around this, you can provide your own prototypes for these functions.
#linedirectives are added to make warning or error messages reflect the original sketch layout.
No pre-processing is done to files in a sketch with any extension other than .ino or .pde. Additionally, .h files in the sketch are not automatically #included from the main sketch file. Further, if you want to call functions defined in a .c file from a .cpp file (like one generated from your sketch), you'll need to wrap its declarations in an extern "C" {}block that is defined only inside of C++ files.
Книга, это конечно хорошо но там 70% информации которую я уже знаю по другим языкам программирования
Иерархия обучения ЯП. Единственная полноценная. В другом порядке получаются однобокие калеки.
начинаем в 13-14 лет:C
Развиваемся тоже в детстве:C++
добавляем базовые знания:Java
Расширяем свои представления языками высокого уровня: Python-PHP-JS
---------------------------------
Это к тому, что сегодня программистом нельзя быть без С, как в старые времена - без Фортрана ;)))
=====================
Сорри! Опять обидел Паскальщиков! ;)) Можно начать с Паскаля, но выстроить основу из С и С++ все равно необходимо. В Паскале нет адресной арифметики, тем самым обучающийся теряет очень много возможностей. Пусть и опасных.
;))) угу. Жаль, что ты не математик, понял бы иронию: вся арифметика Пеано строится на определении инкремента! Так что в этом смысле - конечно есть. Гы! Но только в этом :((
какие базовые знания добавляет Ява? Вопрос без подкола. Яву не знаю и не пойму, много ли потерял?
Четкая концепция ООП. Строгая типизация. Очень богатый полиморфизм, но без перегрузки операторов. Самый главный навык - привыкание к ООП. С++ - в строгом понимании не ООЯП, а ЯП "с элементами" ООП.
На Яве невозможно писать "процедурно" - ничего не выйдет. Лучший способ научиться писать объекно - порабоать на Яве с хоббийными или сторонними проектами.
Я бы посоветовал написать модуль к ИДЕ - ну например стрелочный индикатор, который бы вызывался как tools из ИДЕ и принимал данные с сериала, того, который выбран в свойствах платы. Реально, даже с нулевыми знаниями, это примерно на неделю задачка, если с С++ уже на "ты". ;)) Можно не стрелочный, а имитация семисегментного, нарисованного графикой. Да хоть просто поле вывода, для начала.
С ИДЕ можно собрать тулс с графикой Java Swing. Её будет достаточно для любой украшалки.
Влад, спасибо за ответ. Не знал, что что к ардуино ИДЕ можно писать дополнения на Яве. Почему-то такого почти никто не пишет
FFS tools как написаны? ;))))
Если никто не будет меня поправлять, спорить, обвинять в неточностях кода, то можно в отдельной теме сделать мастер класс, как такие вещи писать. Причем по кусочкам, шаг за шагом покажу. Необходимое условие - сперва собрать ИДЕ из исходников. Это покажет, что весь инструментарий есть. С этого можно и начать.
нужен ant и jdk 8 или 11. Если собирать не только для себя, то 8.
"Нифига" Вас понесло парни/девчёнки :-) Я конечно ЗА любой "мастер класс"! Мой путь и был примерно такой Basic (фортран и иже с ними), Turbo Basic+Pascal с ООП, Ассемблер на УКНЦ (16-разрядный КМ1801ВМ2) потом был Z80 (много) и х86 (немного), а дальше уже VBA, Delphi, PHP, SQL и потом большоооой перерыв. А c рождением Ардуины (в моей жизни) пришлось к Си примкнуть. Хотя уже во времена Turbo Pascal была возможность начать Си, но не успели бытовуха 90-ых закрутила. Современный путь программиста уже совсем другой, щас азы МК как раз на ардуинах и надо изучать. Современные ПК далеко вперед ушли на низовом программировании, там и ООП мощный, и архитектура в разы сложнне стала, и ресурсов завались.
P.S. Вот пощупал freeRTOS на ESP32, пока понравилось, но знаний маловато про много-ядерность и много-поточность конечно, чтобы применимость расширять...
P.P.S. Еще прям на LISP заглядываюсь и его клонов. Этот язык под ИИ чудесно подходит. Но пока применимости не нашел для него в быту.
Щас гугл всех "научил" по аглицки читать. Иногда правда со смыслами у него проблема :-( Я это читал в инструкции к IDE, ссылку в теме выше давали уже, но ясности сий опус много не внес. Вот прям с первого пункта путаница.
объединяются вместе, начиная с файла, который соответствует имени папки, за которым следуют другие в алфавитном порядке.
Проверял - врут. Изменение алфавитного порядка INO не убирает ошибку "функция не определена".
Проверял - врут. Изменение алфавитного порядка INO не убирает ошибку "функция не определена".
Я разработчиков Arduino IDE не защищаю - они легко могут от версии к версии что-то менять. Но если бы Вы сократили свой код до минимума, лишь бы воспроизводилась эта Ваша ошибка, и показали его здесь, то разговор бы был гораздо предметнее. Глядишь, общими усилиями и разобрались бы, кто виноват, что "функция не определена"!
Проверял - врут. Изменение алфавитного порядка INO не убирает ошибку "функция не определена".
так вы дальше читайте - они там пишут, что хоть и стараются сделать все, чтобы пользователи могли писать через пень колоду, не соблюдая правил Си - но не всегда получается.
Поэтому самый простой метод решить ошибку "функция не определена" - это вручную создать для функции прототип и вставить его в начало того файла .ino, что называется по имени папки
так вы дальше читайте - они там пишут, что хоть и стараются сделать все, чтобы пользователи могли писать через пень колоду, не соблюдая правил Си - но не всегда получается.
Поэтому самый простой метод решить ошибку "функция не определена" - это вручную создать для функции прототип и вставить его в начало того файла .ino, что называется по имени папки
Простите за вредную привычку Паскальщиков, не заморачиваться за последовательность определений :-) Будем учится! Это вы про этот пункт:
Прототипы создаются для всех определений функций в файлах .ino / .pde, которые еще не имеют прототипов. В некоторых редких случаях генерация прототипа может не работать для некоторых функций. Чтобы обойти это, вы можете предоставить свои собственные прототипы для этих функций.
Прототипы создаются для всех определений функций в файлах .ino / .pde, которые еще не имеют прототипов. В некоторых редких случаях генерация прототипа может не работать для некоторых функций. Чтобы обойти это, вы можете предоставить свои собственные прототипы для этих функций.
Вот этим колхоз всегда и отличался от интеллигенции :))) Знаниями поделиться это ctr+c ctrl+v, а целину поднять и надои - это совсем другое. Была просьба о совете и помощи, а началось унылое брюзжание. Не хочешь помогать - да пожалуйста, твое личное дело, проходи мимо. А поднимать бздежь о несовершенстве бытия и мерится пипирками программирования это личная инициатива оппозиции :)
Конечно, же, всё как ты и описал. Только самый первый ответ после твоего вопроса
http://arduino.ru/forum/obshchii/pro-arduino-ide#comment-539725
просто ты его не понял, по скудоумию. Разрабоччик, млять.
атыбись. Твои унылые попытки самоутвердиться уже никому не интересны. Ардуино и рассчитано на "скудоумных", так то.
Ардуино и рассчитано на "скудоумных", так то.
А С++ - нет.
Всё, я сдриснул из темы. По многочисленным просьбам Великих.
Тема поднята хорошая, жаль воды раздули на страницу. А парочка простых примеров помогла бы.
Я вот тоже только учусь синтаксису Си и тоже возникла такая же проблема с вкладками на Arduino IDE :-( (Он их в алфавитном порядке что ль собирает?) Это специфика каждого "нового компилятора", который начинаешь осваивать и конечно не просто любому новичку. Хочу прикрутить LCDMenuLib2 библиотеку к своему проектику. Пример также на вкладках создан. Если я главный файл из примера переименуюв .h? То остальные также переименовать в .h и вставить в главный файл из примера через #include?
Про extern можете пояснить, как правильно применять?
И для чего например вставляют запись типа:
И для чего например вставляют запись типа:
уже не для чего :) - признано устаревшим. Вместо этого pragma once
Хочу прикрутить LCDMenuLib2 библиотеку к своему проектику. Пример также на вкладках создан.
посмотрел. Примеры написаны в виде набора .ino файлов. Такой типичный голимый гайверо-стиль...
НЕ знаю, насколько там все грамотно внутри, но думаю, что раз вы задаете эти вопросы - вам не осилить переделку этого примера в .h и .cpp файлы. Попробуйте оставить все файлы примера как .ino, а свой код втавьте в тот файл. где у автора setup() и loop()
Приятно когда за тебя решают, но все же :-)... Я просто не понимаю в какой последовательности компилятор начинает ino собирать. Попробовал даже алфавитную очередность изменить, не помогло.
Ну если забыли про ino. Зона видимости переменных для .h и .cpp тоже не понятна... Просто если в ino есть и переменные и функции, их надо разделить на .h и.cpp файлы? Или можно все в .cpp оставить?
Зона видимости переменных для .h и .cpp тоже не понятна...
Если программирование изучать по форумам разной степени дэбильности, то да. А если взять почитать чонить умное, например K&R, то всё атаматически раскладёцца по полочкам.
https://ravesli.com/urok-20-mnogofajlovye-programmy/
Я просто не понимаю в какой последовательности компилятор начинает ino собирать. Попробовал даже алфавитную очередность изменить, не помогло.
я и сам не знаю... и никогда не интересовался за ненадобностью, поскольку не собираю проекты из кучи .ino файлов.
Если руководствоваться правилами компоновки Си - из одних только .cpp файлов код не соберется, поскольку функции из одного .cpp не будут ничего знать про функции из других файлов. Но ардуино ИДЕ может и обойдется одними только .cpp - я предпочитаю в рулетку не играть, мне проще сразу писать парами .h и .cpp
Зона видимости переменных для .h и .cpp тоже не понятна...
Если программирование изучать по форумам разной степени дэбильности, то да. А если взять почитать чонить умное, например K&R, то всё атаматически раскладёцца по полочкам.
https://ravesli.com/urok-20-mnogofajlovye-programmy/
Зы... Спасибо за книжку и ссылку! Я давно не писал больших проектов (для себя).
Ибо програрммировванние это моё хобби (с детства), а не проф.деятельность. Я уже все понял про ino, осталось разобраться с cpp и h. Как раз зона видимости и беспокоит меня :-( В примере есть глобальные переменные все ж...
https://ravesli.com/urok-21-zagolovochnye-fajly/
посмотрел. Примеры написаны в виде набора .ino файлов. Такой типичный голимый гайверо-стиль...
НЕ знаю, насколько там все грамотно внутри, но думаю, что раз вы задаете эти вопросы - вам не осилить переделку этого примера в .h и .cpp файлы. Попробуйте оставить все файлы примера как .ino, а свой код втавьте в тот файл. где у автора setup() и loop()
А если тезисно: Как последовательно (правильно) поступить чтобы интегрировать в свой код эту библиотеку? Дальше я в нужном направлении уже читать начну :-) А то даже с поиском сложности, ибо проблема формулировок.
Если руководствоваться правилами компоновки Си - из одних только .cpp файлов код не соберется, поскольку функции из одного .cpp не будут ничего знать про функции из других файлов. Но ардуино ИДЕ может и обойдется одними только .cpp - я предпочитаю в рулетку не играть, мне проще сразу писать парами .h и .cpp
А чтобы знали надо объявлять прототипы? Или это вообще не туда?
P.S. У меня в планах перейти на более продвинутую среду чем Arduino IDE (поглядываю на PlatformIO хотя...), но пока с интерфейсом разберешься кучу времени надо.
А чтобы знали надо объявлять прототипы?
именно так.
Посмотрите ссылку. что дал ДедСимен выше - там подробно расписано, как описать свою функцию в паре файлов - .h и .cpp
уже не для чего :) - признано устаревшим. Вместо этого pragma once
Кем это признано, интересно? Это не стандартизированное расширение языка.
Если руководствоваться правилами компоновки Си - из одних только .cpp файлов код не соберется, поскольку функции из одного .cpp не будут ничего знать про функции из других файлов. Но ардуино ИДЕ может и обойдется одними только .cpp - я предпочитаю в рулетку не играть, мне проще сразу писать парами .h и .cpp
В некоторых случаях предпочитаю что бы собиралось не только с Ардуино IDE, но и со Студии или через Make (наиболее удобно). Ну и файлов всегда много, не зависимо от сложности проекта. Пример простейшего проекта:
Всем спасибо большое за ответы и комментарии. Нашёл очень хорошую краткую и понятную главу по области видимости. Помогли ключевые слова для запроса из ответов.
Книга, это конечно хорошо но там 70% информации которую я уже знаю по другим языкам программирования :-( Буду вечерами читать.
Делюсь: http://mycpp.ru/cpp/book/c08.html думаю ещё много кому может пригодится.
P.S. Интегрировать пример LCDMenuLib2 все же получилось :-) Библиотека очень понравилась, наглядная и работает отлично, даже с тяжёлой интеграцией Blynk. Остаётся добить NewEncoder, тоже оказалась очень стабильная библиотека для энкодера с хорошими примерами, времени не хватило.
По аглицки читаешь?
Я просто не понимаю в какой последовательности компилятор начинает ino собирать. тавить?
Pre-Processing¶
The Arduino development software performs a few transformations to your sketch before passing it to the avr-gcc compiler:
#include <Arduino.h>
is added to the sketch. This header file (found in the core folder for the currently selected board) includes all the definitions needed for the standard Arduino core.#line
directives are added to make warning or error messages reflect the original sketch layout.No pre-processing is done to files in a sketch with any extension other than .ino or .pde. Additionally, .h files in the sketch are not automatically #included from the main sketch file. Further, if you want to call functions defined in a .c file from a .cpp file (like one generated from your sketch), you'll need to wrap its declarations in an
extern "C" {}
block that is defined only inside of C++ files.Иерархия обучения ЯП. Единственная полноценная. В другом порядке получаются однобокие калеки.
начинаем в 13-14 лет:C
Развиваемся тоже в детстве:C++
добавляем базовые знания:Java
Расширяем свои представления языками высокого уровня: Python-PHP-JS
---------------------------------
Это к тому, что сегодня программистом нельзя быть без С, как в старые времена - без Фортрана ;)))
=====================
Сорри! Опять обидел Паскальщиков! ;)) Можно начать с Паскаля, но выстроить основу из С и С++ все равно необходимо. В Паскале нет адресной арифметики, тем самым обучающийся теряет очень много возможностей. Пусть и опасных.
добавляем базовые знания:Java
какие базовые знания добавляет Ява? Вопрос без подкола. Яву не знаю и не пойму, много ли потерял?
В Паскале нет адресной арифметики
Есть
В Паскале нет адресной арифметики
Есть
;))) угу. Жаль, что ты не математик, понял бы иронию: вся арифметика Пеано строится на определении инкремента! Так что в этом смысле - конечно есть. Гы! Но только в этом :((
добавляем базовые знания:Java
какие базовые знания добавляет Ява? Вопрос без подкола. Яву не знаю и не пойму, много ли потерял?
Четкая концепция ООП. Строгая типизация. Очень богатый полиморфизм, но без перегрузки операторов. Самый главный навык - привыкание к ООП. С++ - в строгом понимании не ООЯП, а ЯП "с элементами" ООП.
На Яве невозможно писать "процедурно" - ничего не выйдет. Лучший способ научиться писать объекно - порабоать на Яве с хоббийными или сторонними проектами.
Я бы посоветовал написать модуль к ИДЕ - ну например стрелочный индикатор, который бы вызывался как tools из ИДЕ и принимал данные с сериала, того, который выбран в свойствах платы. Реально, даже с нулевыми знаниями, это примерно на неделю задачка, если с С++ уже на "ты". ;)) Можно не стрелочный, а имитация семисегментного, нарисованного графикой. Да хоть просто поле вывода, для начала.
С ИДЕ можно собрать тулс с графикой Java Swing. Её будет достаточно для любой украшалки.
Влад, спасибо за ответ. Не знал, что что к ардуино ИДЕ можно писать дополнения на Яве. Почему-то такого почти никто не пишет
Влад, спасибо за ответ. Не знал, что что к ардуино ИДЕ можно писать дополнения на Яве. Почему-то такого почти никто не пишет
FFS tools как написаны? ;))))
Если никто не будет меня поправлять, спорить, обвинять в неточностях кода, то можно в отдельной теме сделать мастер класс, как такие вещи писать. Причем по кусочкам, шаг за шагом покажу. Необходимое условие - сперва собрать ИДЕ из исходников. Это покажет, что весь инструментарий есть. С этого можно и начать.
нужен ant и jdk 8 или 11. Если собирать не только для себя, то 8.
"Нифига" Вас понесло парни/девчёнки :-) Я конечно ЗА любой "мастер класс"! Мой путь и был примерно такой Basic (фортран и иже с ними), Turbo Basic+Pascal с ООП, Ассемблер на УКНЦ (16-разрядный КМ1801ВМ2) потом был Z80 (много) и х86 (немного), а дальше уже VBA, Delphi, PHP, SQL и потом большоооой перерыв. А c рождением Ардуины (в моей жизни) пришлось к Си примкнуть. Хотя уже во времена Turbo Pascal была возможность начать Си, но не успели бытовуха 90-ых закрутила. Современный путь программиста уже совсем другой, щас азы МК как раз на ардуинах и надо изучать. Современные ПК далеко вперед ушли на низовом программировании, там и ООП мощный, и архитектура в разы сложнне стала, и ресурсов завались.
P.S. Вот пощупал freeRTOS на ESP32, пока понравилось, но знаний маловато про много-ядерность и много-поточность конечно, чтобы применимость расширять...
P.P.S. Еще прям на LISP заглядываюсь и его клонов. Этот язык под ИИ чудесно подходит. Но пока применимости не нашел для него в быту.
По аглицки читаешь?
Щас гугл всех "научил" по аглицки читать. Иногда правда со смыслами у него проблема :-( Я это читал в инструкции к IDE, ссылку в теме выше давали уже, но ясности сий опус много не внес. Вот прям с первого пункта путаница.
Проверял - врут. Изменение алфавитного порядка INO не убирает ошибку "функция не определена".
Проверял - врут. Изменение алфавитного порядка INO не убирает ошибку "функция не определена".
Я разработчиков Arduino IDE не защищаю - они легко могут от версии к версии что-то менять. Но если бы Вы сократили свой код до минимума, лишь бы воспроизводилась эта Ваша ошибка, и показали его здесь, то разговор бы был гораздо предметнее. Глядишь, общими усилиями и разобрались бы, кто виноват, что "функция не определена"!
Проверял - врут. Изменение алфавитного порядка INO не убирает ошибку "функция не определена".
так вы дальше читайте - они там пишут, что хоть и стараются сделать все, чтобы пользователи могли писать через пень колоду, не соблюдая правил Си - но не всегда получается.
Поэтому самый простой метод решить ошибку "функция не определена" - это вручную создать для функции прототип и вставить его в начало того файла .ino, что называется по имени папки
так вы дальше читайте - они там пишут, что хоть и стараются сделать все, чтобы пользователи могли писать через пень колоду, не соблюдая правил Си - но не всегда получается.
Поэтому самый простой метод решить ошибку "функция не определена" - это вручную создать для функции прототип и вставить его в начало того файла .ino, что называется по имени папки
Простите за вредную привычку Паскальщиков, не заморачиваться за последовательность определений :-) Будем учится! Это вы про этот пункт:
Это вы про этот пункт:
ага, именно про него
Необходимое условие - сперва собрать ИДЕ из исходников.
в винде из исходников? или в линуксе?
Необходимое условие - сперва собрать ИДЕ из исходников.
в винде из исходников? или в линуксе?
Для Явы никакой разницы, мне ближе Линух.
Простите за вредную привычку Паскальщиков, не заморачиваться за последовательность определений :-)
Неправда Ваша.
В Паскале все, что используется, должно быть предварительно определено. Без вариантов.
Простите за вредную привычку Паскальщиков, не заморачиваться за последовательность определений :-)
Неправда Ваша.
В Паскале все, что используется, должно быть предварительно определено. Без вариантов.
Или, если не определено, то последовательность ТОЖЕ имеет значение
Проверял - врут. Изменение алфавитного порядка INO не убирает ошибку "функция не определена".
Обычно виноваты все, кроме вас. Проблема вовсе не в алфавитном порядке. Смотреть нужно в .ino.cpp файле.
Ну и +1 к #79.