Arduino:Справочник языка Arduino/sizeof(): различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Arduino панель перехода}} | {{Arduino панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
Строка 10: | Строка 9: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
sizeof(переменная) | sizeof(переменная) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 16: | Строка 15: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
переменная — переменная любого типа или массив (например, int, float, byte) | переменная — переменная любого типа или массив (например, int, float, byte) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 26: | Строка 25: | ||
Ниже — программа-образец, которая по очереди выводит символы, имеющиеся в строке. Вместо '''«this is a test»''' можно поставить любую другую фразу. | Ниже — программа-образец, которая по очереди выводит символы, имеющиеся в строке. Вместо '''«this is a test»''' можно поставить любую другую фразу. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
Char myStr[] = "this is a test"; | Char myStr[] = "this is a test"; | ||
int i; | int i; | ||
Строка 47: | Строка 46: | ||
Обратите внимание, что '''sizeof''' возвращает суммарное число байтов. Поэтому для переменных, которые могут содержать большое количество байтов, цикл [[Arduino:Справочник языка Arduino/Управляющие операторы/for|for]] будет выглядеть примерно так, как показано ниже. Также имейте в виду, что правильным образом отформатированная строка должна заканчиваться символом '''NULL''', которому в '''ASCII'''-таблице соответствует значение '''«0»'''. | Обратите внимание, что '''sizeof''' возвращает суммарное число байтов. Поэтому для переменных, которые могут содержать большое количество байтов, цикл [[Arduino:Справочник языка Arduino/Управляющие операторы/for|for]] будет выглядеть примерно так, как показано ниже. Также имейте в виду, что правильным образом отформатированная строка должна заканчиваться символом '''NULL''', которому в '''ASCII'''-таблице соответствует значение '''«0»'''. | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
for (i = 0; i < (sizeof(myInts)/sizeof(int)) - 1; i++) { | for (i = 0; i < (sizeof(myInts)/sizeof(int)) - 1; i++) { | ||
// делаем что-либо с myInts[i] | // делаем что-либо с myInts[i] | ||
Строка 54: | Строка 53: | ||
=См.также= | =См.также= | ||
=Внешние ссылки= | =Внешние ссылки= | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Arduino}} | |||
[[Категория:Справочник языка Arduino]] | [[Категория:Справочник языка Arduino]] |
Текущая версия от 11:25, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Функция sizeof[1]
Эта функция возвращает количество байтов в переменной или массиве.
Синтаксис
sizeof(переменная)
Параметры
переменная — переменная любого типа или массив (например, int, float, byte)
Пример
Функция sizeof удобна в работе с массивами (вроде строк) — с ее помощью удобно менять размер массива, при этом не вредя другим частям программы.
Ниже — программа-образец, которая по очереди выводит символы, имеющиеся в строке. Вместо «this is a test» можно поставить любую другую фразу.
Char myStr[] = "this is a test";
int i;
void setup(){
Serial.begin(9600);
}
void loop() {
for (i = 0; i < sizeof(myStr) — 1; i++){
Serial.print(i, DEC);
Serial.print(" = ");
Serial.write(myStr[i]);
Serial.println();
}
delay(5000); // замедление программы
}
Обратите внимание, что sizeof возвращает суммарное число байтов. Поэтому для переменных, которые могут содержать большое количество байтов, цикл for будет выглядеть примерно так, как показано ниже. Также имейте в виду, что правильным образом отформатированная строка должна заканчиваться символом NULL, которому в ASCII-таблице соответствует значение «0».
for (i = 0; i < (sizeof(myInts)/sizeof(int)) - 1; i++) {
// делаем что-либо с myInts[i]
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |