Почему некоторые буквы зарезервированы?
Я написал функцию, которая принимает символы, и заметил, что компилятор Arduino обрабатывал некоторые символы как зарезервированные системой, другие как функции, а некоторые просто как символы. Строчные буквы, похоже, не действуют. Мне просто интересно, почему.
@j0h, 👍1
Обсуждение2 ответа
Лучший ответ:
Arduino IDE выполняет окраску ключевых слов в соответствии с очень грубой системой. Он просто сканирует все keywords.txt файлы, включенные в комплект поставки:
- Arduino IDE
- Библиотеки в комплекте с Arduino IDE
- Библиотеки, установленные в подпапке библиотеки вашего sketchbook
- Библиотеки в комплекте с аппаратным пакетом выбранной в данный момент платы - Аппаратный пакет выбранной в данный момент платы (только последние версии IDE)
Существует несколько типов идентификаторов ключевых слов, которые определяют, какой цвет используется. Причина, по которой эти буквы окрашены в вашей среде IDE, заключается в том, что какая-то библиотека, которую вы установили, просто добавила их в свою keywords.txt файл. Arduino IDE не пытается определить, включили ли вы эти библиотеки, и поэтому окраска не обязательно означает, что они "зарезервированы". Если вы не включили библиотеку, определяющую конкретное ключевое слово, то окраска этого ключевого слова не имеет смысла.
Для получения дополнительной информации о keywords.txt см.:
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#keywords
В WString.h - это определение:
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
Другими словами, буква F
-это уже макрос.
Я не знаю, что ваш код:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
так и должно быть. Я полагаю, вы просто тестируете подсветку синтаксиса?
Подсветка синтаксиса предназначена для того, чтобы попытаться "помочь" вам, раскрасив слова в предварительно поставленном файле по-другому. Это никоим образом не влияет на то, как работает компиляция. И, судя по тому, что вы опубликовали, на это не всегда можно положиться. Лично я его игнорирую.
Я просто показывал буквы, которые делают подсветку синтаксиса., @j0h
- Включает ли скомпилированный бинарный файл скетча неиспользуемые функции из библиотеки?
- Удаление L из F_CPU в сборке
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
Что должен означать ваш код?, @Edgar Bonet
Вы имеете в виду разные цвета букв? Подсветка синтаксиса предназначена для выделения правильного кода на языке Си. Предоставление ему **недопустимого кода** приведет к **недопустимому выделению**. Я бы не стал вдаваться в подробности., @Gerben
Ну ладно. Возможно, я слишком много читал об этом, @j0h
@EdgarBonet это сегмент, вы даете его вперед(a||b), и мотор a или b движется вперед, или назад, или тормозит, или останавливает все и т. Д. Он также работал(нужно больше тестирования). Мне просто было любопытно узнать о подсветке синтаксиса, которую я заметил, когда писал ее., @j0h
Пожалуйста, скопируйте и вставьте свой код, а не его фотографию. Справку см. в разделе [Справка по уценке](http://meta.stackexchange.com/editing-help). Вы можете отформатировать код, выбрав его и нажав "Ctrl+K", чтобы ваш браузер сделал это за вас., @Nick Gammon