Размер массива в C/C++:
Следующие два варианта актуальны и для других языков.
Switch в одну строку с поддержкой всех типов:
Стандарт C - штука нестрогая. Например, char - это не 1 байт, не 2 и не 4. char - это sizeof(char) и единственное ограничение: sizeof(char) < sizeof(int). Вспоминаем, что из себя представляют числа в памяти и поэтому НИКОГДА не пытаемся поделить на 2 через сдвиг отрицательное число.
Взято отсюда
MyHugeStructure array[100];
int array_size = sizeof(array)/sizeof(*array);
for(int i = 0; i < array_size; i++)
array[i].id = i;
Следующие два варианта актуальны и для других языков.
Switch в одну строку с поддержкой всех типов:
str = number == 1 ? "one" :
number == 2 ? "two" :
number == 3 ? "three" :
number == 4 || rand() == 42 ? "four" :
number == 5 ? "five" :
"unknown number";
Стандарт C - штука нестрогая. Например, char - это не 1 байт, не 2 и не 4. char - это sizeof(char) и единственное ограничение: sizeof(char) < sizeof(int). Вспоминаем, что из себя представляют числа в памяти и поэтому НИКОГДА не пытаемся поделить на 2 через сдвиг отрицательное число.
//ТАК ДЕЛАТЬ НЕЛЬЗЯ!!
int a = -2;
printf("%dn", a >> 1);
Взято отсюда
Комментариев нет:
Отправить комментарий