Как я могу использовать sizeof в макросе препроцессора?

Есть ли способ использовать sizeof в макросе препроцессора?

Например, за эти годы было множество ситуаций, в которых я хотел сделать что-то вроде :

#if sizeof(someThing) != PAGE_SIZE
#error Data structure doesn't match page size
#endif

То, что я здесь проверяю, полностью выдумано - дело в том, что я часто люблю вставлять эти типы (размер или выравнивание) проверок времени компиляции, чтобы защититься от того, кто изменит структуру данных, которая может выровнять или изменить размер вещей, которые могут их сломать.

Излишне говорить - я не могу использовать размер описанным выше способом.

84
задан Melebius 19 January 2018 в 11:01
поделиться