Являются ли логические переменные обычно реализованными в виде отдельных битов? [дубликат] ⇐ C++
-
Anonymous
Являются ли логические переменные обычно реализованными в виде отдельных битов? [дубликат]
Возможный дубликат:
Однобайтовое логическое значение. Почему?
Я хочу добавить логическую переменную в класс. Однако этот класс очень чувствителен к размеру, и в результате мне не хотелось бы добавлять еще одно поле. Однако он состоит из кучи членов шириной не менее символа и одного другого типа bool.
Если бы я был Написав этот код от руки, я бы реализовал эти логические поля как биты в последнем байте или около того объекта. Поскольку доступ должен быть выровнен по байтам, это не вызовет никаких пространственных издержек.
Так вот, обычно ли компиляторы делают этот трюк? Единственная причина, по которой я могу запретить им этого делать, заключается в том, что для извлечения этого фрагмента потребуется дополнительная маска.
Подробнее здесь: https://stackoverflow.com/questions/146 ... ingle-bits
Возможный дубликат:
Однобайтовое логическое значение. Почему?
Я хочу добавить логическую переменную в класс. Однако этот класс очень чувствителен к размеру, и в результате мне не хотелось бы добавлять еще одно поле. Однако он состоит из кучи членов шириной не менее символа и одного другого типа bool.
Если бы я был Написав этот код от руки, я бы реализовал эти логические поля как биты в последнем байте или около того объекта. Поскольку доступ должен быть выровнен по байтам, это не вызовет никаких пространственных издержек.
Так вот, обычно ли компиляторы делают этот трюк? Единственная причина, по которой я могу запретить им этого делать, заключается в том, что для извлечения этого фрагмента потребуется дополнительная маска.
Подробнее здесь: https://stackoverflow.com/questions/146 ... ingle-bits
Мобильная версия