Следующий код округляет аргумент до числа байтов, ограниченного размером int.
#define _INTSIZE(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1))
На моей машине int составляет 4 байта, так что - поправьте меня, если я ошибаюсь - это должно быть то же самое, что искать следующее целое число, кратное 4 (на моей машине). Под следующим кратным 4 я подразумеваю, что число должно быть округлено до числа, кратного 4, если оно не кратно 4. Если оно уже кратно 4, его следует оставить в покое.
Я играл с этим кодом. Коротко и подробно: почему этот код работает? (может быть, это не так, но кажется, что он работает). те, которые я пробовал.
& ~(sizeof(int))
работает? - person BudgieInWA   schedule 18.11.2011