Arduino:Справочник языка Arduino/Синтаксис/define: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показаны 4 промежуточные версии 1 участника)
Строка 15: Строка 15:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
#define constantName value
#define constantName value
</syntaxhighlight>
</syntaxhighlight>
Строка 23: Строка 23:
==Пример==
==Пример==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
#define ledPin 3  
#define ledPin 3  
</syntaxhighlight>
</syntaxhighlight>
Строка 33: Строка 33:
Точки запятой после всей этой конструкции ставить не нужно. Если поставить, компилятор будет выдавать разного рода непонятные ошибки.
Точки запятой после всей этой конструкции ставить не нужно. Если поставить, компилятор будет выдавать разного рода непонятные ошибки.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
#define ledPin 3; // это ошибка
#define ledPin 3; // это ошибка
</syntaxhighlight>
</syntaxhighlight>
Строка 39: Строка 39:
Подобные ошибки будут появляться, если поставить после названия константы знак '''«равно»'''.
Подобные ошибки будут появляться, если поставить после названия константы знак '''«равно»'''.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
#define ledPin = 3; // это тоже ошибка
#define ledPin = 3; // это тоже ошибка
</syntaxhighlight>
</syntaxhighlight>
Строка 54: Строка 54:
[[Категория:Справочник языка Arduino]]
[[Категория:Справочник языка Arduino]]


{{Навигационная таблица/Справочник языка Arduino}}
{{Навигационная таблица/Портал/Arduino}}
{{Навигационная таблица/Arduino библиотеки}}

Текущая версия от 12:40, 20 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Define[1]

Директива #define — это полезный компонент языка C, с помощью которого программист может дать имя постоянному значению (константе) еще до того, как программа его скомпилирует. Константы, обработанные с помощью #define, не занимают места в программной памяти чипа. При компилировании отсылки к этим константам заменяются на значения, заданные при помощи #define.

Это, однако, может иметь нежелательный побочный эффект. Допустим, в программе есть константа led, которую мы хотим обработать директивой #define, и есть константа led pin, с которой мы этого делать не собираемся. И если определить константе led значение 3, то название константы led pin поменяется на 3 pin. То есть, если название определенной константы входит в название другой константы или переменной, то вместо «родного» текста в этом названии появится число (или текст), заданное директивой #define.

Впрочем, для определения констант вместо #define лучше использовать ключевое слово const.

Arduino использует для #define тот же синтаксис, что и C:

Синтаксис

#define constantName value

Обратите внимание, что нужно обязательно использовать #.

Пример

#define ledPin 3

В результате во время компиляции любое упоминание о ledPin будет заменено на 3.

Совет

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

#define ledPin 3; // это ошибка

Подобные ошибки будут появляться, если поставить после названия константы знак «равно».

#define ledPin = 3; // это тоже ошибка

См.также

  1. const
  2. Целочисленные константы

Внешние ссылки