Ви не увійшли.
Сторінки 1
При получении первого 's' переменные принимают такие значения: val = 's', timeS=времяПриходаПервогоСимвола. Это происходит в первом if.
Подошли ко второму if. Напоминаю, что val = 's', timeS=времяПриходаПервогоСимвола. Условие выполнится. Но не так и не тогда как подразумевалось - не во время прихода второго символа, а сразу после прочтения первого 's'. И в timeF запишется просто этот момент, разница в 0 мкс.
Нужно что-то менять.
Например, ввести вместо val val1 и val2. Первый символ писать в val1, второй в val2, при получении второго символа произвести вычисления, и не забыть очистить val1 и val2. Или переместить timeF в timeS, а val2 и timeF очистить в случае, если нужно будет ждать третий 's' и более. При этом нужно помнить как выполняется программа, чтобы не повторить предыдущую ошибку.
Буфер очищается сам после чтения. Прочитан символ, второй раз его не прочитать.
>Str_item могут разное количество байт.
Про указатели читал?
Да, спасибо.
Все получилось.
int length = (sizeof(Array1)/sizeof(Str_item);
or
int length = Array1.size();
Спасибо, получилось.
int length = (sizeof(Array1)/sizeof(Array1[0]);
Здравствуйте!
Столкнулся с нерешаемой мной проблемой. Гугл не помог.
Нужно подсчитать количество элементов в массиве структур. Через sizeof ? Так размеры строк разные.
Объявление структуры:
struct Str_item
{
String text;
byte X;
byte Y;
byte changeable;
void *PtrNextLevel;
void *PtrPrevLevel;
};
Создаю массивы данных структур:
Str_item Array1[]=
{
{ "Text1", 2, 0, 1, NULL, NULL }, //элемент 1
{ " Text2___", 2, 1, 1, NULL, NULL}, //элемент 2
};
Str_item Array2[]=
{
{ "__Text5 ", 2, 0, 1, NULL, NULL }, //элемент 1
{ " Text6___", 2, 1, 1, NULL, NULL}, //элемент 2
{ " Text7 Text 3 ", 2, 2, 1, NULL, NULL}, //элемент 3
{ " __ Text8", 2, 3, 1, NULL, NULL} //элемент 4
};
Нужно подсчитать количество элементов каждого массива. Для приведенного кода это 2 и 4 элемента. Как их подсчитать программно?
Сторінки 1