Размер массива в 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);
Взято отсюда
Комментариев нет:
Отправить комментарий