Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Щитпост

Статус
В этой теме нельзя размещать новые ответы.
по неизвестной причине заставило бомбом многие передаки
Мама, я их затраллил!
(ты если о паддинге только узнал, то ни на какое моральное/интеллектуальное превосходство претендовать не можешь. То, что люди могут приводить не совсем правильные формулировки причины ещё не значит, что они не знают, почему так)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
там $ стоит какой нахуй тест , у тебя ошибка компиляции будет
это обычный символ бро
Мама, я их затраллил!
(ты если о паддинге только узнал, то ни на какое моральное/интеллектуальное превосходство претендовать не можешь. То, что люди могут приводить не совсем правильные формулировки причины ещё не значит, что они не знают, почему так)
а я претендовал? я 3 мсг написал, что это был вопрос ради ответа, актив есть, правильный ответ (который я не знал) есть, ауе!!!
друг этот айкью тест ты сам не прошёл
да
 
Последнее редактирование:
8 или 16 в зависимости от архитектуры
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
На х64 - 12 байт, т.к. указатель равен 8 байтам, интежер - 4 байтам
На х86 - 8 байт, т.к. указатель будет равен уже 4 байтам
 
По дефолту твой код будет на x64 - 16 байт занимать и 8 байт на x32 из-за выравнивания, но если изменить на выравнивание по 4, то на x64 будет 12 байт, используя #pragma pack(push, 4) и #pragma pack(pop), хотя из-за этого может упасть эффективность, иначе бы оптимизатор сам бы это делал. Эксперты плюсов, он же ранее оксимирон, сейчас вроде мэйби бэйби подправит нас
 
По дефолту твой код будет на x64 - 16 байт занимать и 8 байт на x32 из-за выравнивания, но если изменить на выравнивание по 4, то на x64 будет 12 байт, используя #pragma pack(push, 4) и #pragma pack(pop), хотя из-за этого может упасть эффективность, иначе бы оптимизатор сам бы это делал. Эксперты плюсов, он же ранее оксимирон, сейчас вроде мэйби бэйби подправит нас
зачем советовать #прагма директивы которых даже в стандарте сппшном нет
 
зачем советовать #прагма директивы которых даже в стандарте сппшном нет
да это не совет, скорее рассказал из-за чего меняется размер одной и той же структуры, на оптимизацию влияла это директива, кстати или нет?
 
да это не совет, скорее рассказал из-за чего меняется размер одной и той же структуры, на оптимизацию влияла это директива, кстати или нет?
она по определению уб - у нее нет определения

а так да, ты абсолютно прав
 
Если по теме и слегка серьёзно: нет смысла знать вес самого класса т.к
больше сыграет компилятор в оптимизации(если вы не будете делать максимально тупые вещи по типу везде __forceinline и вызов таких функций по 20+раз)
В HF-трейдинге и геймдеве нужно знать - влезет ли структура в кэш линию.


Ответ 0x10, автор клоун
Указатель - 8 байт
Integer - 4 байта
Padding - 4 байта
В C++ не существует таких вещей, как padding, виртуальная таблица.
Стандарт не даёт гарантий относительно sizeof, offsetof.
Если твой код полагается на какие то конкретные значения оффсетов или размеров, то это UB.
Это значит compiler implementation dependent.
Цель языка C++, чтобы код скомпилированный на всех компиляторах поддерживающих стандарт имел одинаковый behavior.

Например такая вещь как sizeof(pointer to member function)
Itanium ABI будет равен sizeof(void*) для обычных функций-членов. sizeof(void*)*2 для виртуальных.
В Microsoft ABI это sizeof(void*) для обычных. sizeof(void*) для виртуальных.
Но если это virtual and/or multiple inheritance, то sizeof(void*)*2.


Забавно что автор вопроса взялся за такую сложную тему как оценка intelligence quotient по одному вопросу,
однако не справился с тем, чтобы грамотно определить constraints вопроса.

Предположу он даже не догадывается о том что язык C++ и компилятор msvc это разные вещи, просто узнал про паддинги и сразу решил закрепить знания через самоутвердиться за счёт сверстников. Интересно каково будет его удивление, когда узнает про настраиваемые опции комплятора.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу