Запитання з тегом «memory-layout»

3
Структурувати макет пам'яті в C
У мене фон C #. Я дуже новачок у мові низького рівня, як C. У C # structпам'ять розміщена компілятором за замовчуванням. Компілятор може переупорядковувати поля даних або неявно розміщувати додаткові біти між полями. Отже, мені довелося вказати якийсь спеціальний атрибут, щоб замінити цю поведінку для точного розміщення. AFAIK, C …

7
Як працює порівняння вказівників у С? Чи нормально порівнювати покажчики, які не вказують на один і той же масив?
У розділі 5 K&R (Мова програмування на C) я прочитав наступне: По-перше, покажчики можуть бути порівняні за певних обставин. Якщо pі qвказують на елементи одного і того ж масиву, то співвідношення подобається ==, !=, <, >=і т.д. працювати належним чином. Що, мабуть, означає, що можна порівняти лише вказівники, що вказують …

2
[[no_unique_address]] і два значення одного члена
Я граю разом [[no_unique_address]]з c++20. У прикладі cppreference у нас є порожній тип Emptyта типZ struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; Мабуть, розмір Zповинен бути хоча б 2тому, що типи e1та e2однакові. Однак мені дуже хочеться мати Zрозміри 1. Це …

1
Чому оптимізація порожньої бази заборонена, коли порожній базовий клас також є змінною члена?
Оптимізація порожньої бази чудова. Однак він поставляється із наступним обмеженням: Оптимізація порожньої бази забороняється, якщо одним із порожніх базових класів є також тип або база типу першого нестатичного члена даних, оскільки два базових суб'єкти одного типу повинні мати різні адреси в рамках представлення об'єкта найбільш похідного типу. Щоб пояснити це …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.