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">») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Arduino панель перехода}} | {{Arduino панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
Строка 58: | Строка 57: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Справочник языка Arduino}} | |||
{{Навигационная таблица/Arduino библиотеки}} | |||
[[Категория:Справочник языка Arduino]] | [[Категория:Справочник языка Arduino]] |
Версия от 23:24, 19 июня 2019
Содержание | Знакомство с 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]
}