Есть очень старая хитрость, чтобы уловить пару битов, если у вас уже есть структуры данных. Это довольно неприятно, и если у вас нет очень веских причин, это, скорее всего, не очень хорошая идея. Я просто указываю на это, если вам действительно нужно сэкономить пару битов.
Из-за выравнивания указатели на x86 или x64 часто кратны 4, следовательно, два наименее значимых бита таких указателей (например, указатели на int
) всегда 0
. Вы можете использовать это и пробраться туда со своими двумя битами, но вы должны убедиться, что удалили их при доступе к этим указателям (в зависимости от архитектуры, я не уверен здесь).
Опять же, это противный, опасный и красивый UB, но, возможно, оно того стоит в вашем случае.