Почему некоторые буквы зарезервированы?

Я написал функцию, которая принимает символы, и заметил, что компилятор Arduino обрабатывал некоторые символы как зарезервированные системой, другие как функции, а некоторые просто как символы. Строчные буквы, похоже, не действуют. Мне просто интересно, почему.

, 👍1

Обсуждение

Что должен означать ваш код?, @Edgar Bonet

Вы имеете в виду разные цвета букв? Подсветка синтаксиса предназначена для выделения правильного кода на языке Си. Предоставление ему **недопустимого кода** приведет к **недопустимому выделению**. Я бы не стал вдаваться в подробности., @Gerben

Ну ладно. Возможно, я слишком много читал об этом, @j0h

@EdgarBonet это сегмент, вы даете его вперед(a||b), и мотор a или b движется вперед, или назад, или тормозит, или останавливает все и т. Д. Он также работал(нужно больше тестирования). Мне просто было любопытно узнать о подсветке синтаксиса, которую я заметил, когда писал ее., @j0h

Пожалуйста, скопируйте и вставьте свой код, а не его фотографию. Справку см. в разделе [Справка по уценке](http://meta.stackexchange.com/editing-help). Вы можете отформатировать код, выбрав его и нажав "Ctrl+K", чтобы ваш браузер сделал это за вас., @Nick Gammon


2 ответа


Лучший ответ:

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

,

1

В 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