Описание тега struct-member-alignment
1
ответ
Какова альтернатива MSVC /Zp на GCC и Clang?
В случае, я хочу определить выравнивание структуры на уровне модуля, используя флаги компилятора, такие как /Zp для cl на окнах. Какие есть альтернативы на GCC и Clang?
23 июн '15 в 15:40
1
ответ
sizeof c struct только с полями char
Я понимаю, как работает padding. Я знаю, что такое выравнивание. Что для меня странно, так это то, что размер структуры только с полями char не выровнен по 4 байта (заполнение в конце)? Я подозреваю, что это просто не гарантируется спецификацией, по…
21 июл '17 в 04:26
0
ответов
Быстрая проблема выравнивания с UnsafeBytes и UnsafePointer
В следующем коде testP.deviceID а также testP.deviceID1 должно иметь одинаковое значение. Однако testP.deviceID1 содержит 2 (он должен содержать 513). Так что есть что-то фундаментальное, что я не понимаю в отношении выравнивания? let byteArray:[UIn…
19 мар '18 в 09:45
4
ответа
Программа на C - Упаковка и выравнивание данных переменной структуры
Каким будет вывод программы на 32-битном компьютере (с использованием GCC)? Объясните. #include<stdio.h> int main() { struct node { int data; struct node *link; }; struct node *p, *q; p = (struct node *) malloc(sizeof(struct node)); q = (struc…
31 июл '15 в 07:49
0
ответов
Какова структура упаковки по умолчанию с использованием cl/gcc/clang?
В msdn для опции компилятора cl /Zp упоминается, что "упаковывает структуры на 8-байтовых границах (по умолчанию)". Означает ли это, что если существует тип данных размером> 8 байт, по умолчанию (без параметра компилятора или пакета прагмы) он не бу…
24 июн '15 в 08:10
2
ответа
Структурное выравнивание безопасного использования
Я новичок в компании, где используется следующее использование структуры: #include <stdio.h> #include <string.h> typedef unsigned char uint8; typedef signed char int8; typedef unsigned short int uint16; typedef signed short int int16; ty…
10 авг '16 в 17:28
4
ответа
Почему Visual Studio не оптимизирует структуры для лучшего использования памяти?
Мой вопрос: почему компилятор Visual Studio 2012 не автоматически переупорядочивает элементы структуры для лучшего использования памяти? Компилятор, похоже, хранит элементы в том порядке, в котором они объявлены в определении структуры, с некоторыми…
02 июн '15 в 14:45
3
ответа
Выравнивание класса по классу, от которого он наследуется? Принудительно выравнивать все стеки? Изменить размер?
Я хочу иметь базовый класс, который диктует выравнивание объектов, которые наследуются от него. Это прекрасно работает для кучи, потому что я могу контролировать, как это распределяется, и как массивы распределяются в шаблоне пользовательского масси…
07 ноя '09 в 07:14
3
ответа
Выравнивание членов структуры - разный размер с использованием 16-битного и 32-битного компилятора
У меня есть структура, используемая для передачи сообщений на панель управления, которая мне необходима для обеспечения программной совместимости между 16-разрядным компилятором Keil C167 и 32-разрядным компилятором Tricore gcc. typedef struct { uns…
16 май '18 в 21:55
0
ответов
Есть ли гарантированный способ избежать заполнения между базовым и производным классом?
Я работаю над сетевой программой, которая будет работать с пакетами, имеющими часть заголовка и часть полезной нагрузки. Заголовок переменной длины с добавленными или удаленными сегментами расширения в зависимости от условий сети. Часть пользователь…
25 дек '18 в 19:18
2
ответа
Почему этот атрибут выравнивания должен быть указан в typedef?
Первоначально я написал этот вопрос со своего планшета и предпринял много быстрых действий, чтобы, по моему мнению, в конечном итоге привести к путанице среди людей, которые читали и / или пытались ответить на вопрос. Я не прошу решения проблемы, с …
16 дек '16 в 08:21
2
ответа
В чем причина выравнивания этой структуры?
В шапке Вулкана vulkan.h есть структура, определенная как typedef struct VkSwapchainCreateInfoKHR { VkStructureType sType; const void* pNext; VkSwapchainCreateFlagsKHR flags; VkSurfaceKHR surface; uint32_t minImageCount; VkFormat imageFormat; VkColo…
09 авг '16 в 22:05
2
ответа
Заполнение структуры объединением членов std::bitset
После того, как я решил свою проблему с этим вопросом, я продолжил расширять эту версию своего кода, чтобы включить объединения полей данных из моих предыдущих версий шаблона с этой версией, и у меня есть это до сих пор: main.cpp #include <iostre…
07 май '19 в 19:29
2
ответа
Добавлены дополнительные биты в структуре битовых полей в C
Я пытаюсь создать клиентский код C для протокола CAPWAP. Я попытался реализовать заголовок CAPWAP, используя структуру битового поля. Но после отправки этой структуры через сокет с помощью sendto(), когда я перехватываю пакет с помощью wireshark, я …
06 авг '19 в 09:27
0
ответов
Массив выровненной структуры, которая индуцирует регулярный массив отдельных членов
Если у меня есть структура (например, employee ниже), массив такой структуры индуцирует пошаговые массивы всех элементов структуры, только если размер структуры является (наименьшим) общим кратным (LCM) размера всех элементов. В противном случае в м…
01 июл '19 в 02:13
7
ответов
Как организовать членов в структуре, чтобы тратить на выравнивание меньше всего места?
[Не дубликат заполнения структуры и упаковки. Этот вопрос о том, как и когда происходит заполнение. Этот рассказ о том, как с этим бороться.] Я только что понял, сколько памяти теряется в результате выравнивания в C++. Рассмотрим следующий простой п…
25 июн '19 в 23:29
1
ответ
Как установить параметры сборки Visual C для выравнивания элементов структуры в CMake?
Я хочу знать, как установить следующие параметры сборки Visual Studio в моем файле CMakeLists.txt. Выравнивание элемента структуры = 1 байт (/Zp1), который задается в свойствах проекта (Свойства конфигурации -> C/C++ -> Генерация кода).
12 фев '20 в 16:01
1
ответ
vcpkg: Укажите выравнивание члена структуры
У меня есть старый код, который скомпилирован с упаковкой в 1 байт (аргумент /Zp1) Struct Member Alignment, и я добавляю к ним модульное тестирование с помощью gTest. я используюvcpkgдля установки gTest, но он скомпилирован с использованием по умо…
19 окт '19 в 01:16
1
ответ
Сравнение двух структур одного типа из внешнего API
Так что в основном я пытаюсь сравнить два VkPhysicalDeviceFeatures из Вулкана, один из VkPhysicalDeviceЯ смотрю, и другой, который соответствует набору действительно необходимых мне функций. аVkPhysicalDeviceFeaturesструктура содержит только VkBool3…
25 апр '20 в 00:49
1
ответ
Выравнивание простого класса, чтобы разрешить доступ к массиву без UB
Предположим, у меня есть следующий простой класс: struct employee{ std::string name; short salary; std::size_t age; employee(std::string name, short salary, std::size_t age) : name{name}, salary{salary}, age{age}{} }; Поскольку мне нужен массивный д…
11 июн '20 в 08:53