Курс по SQL - урок 4 - Группировка данных. Агрегатные функции.
В Linux намеренно делали размер битового поля отрицательным
Чтобы ловить ошибки до запуска Классический макрос подсчёта элементов массива в C выглядит безобидно: #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) Но передайте указатель - и получите неверное число: int a[10]; int *p = a; ARRAY_SIZE(a); // 10 ARRAY_SIZE(p); // например, 2 при указателе 8 байт и int 4 байта `sizeof(p)` возвращает размер указателя, а не массива. Такая же ловушка возникает с параметром функции int a[]: фактически это указатель. В ядре Linux использовали хитрую защиту:...