6
ответов

Участники класса/структуры всегда становятся созданными в памяти в порядке, которым они были объявлены?

Это - вопрос, который был зажжен ответом Rob Walker здесь. Предположим, что я объявляю класс/структуру как так: структура {символ A; интервал B; символ C; интервал D;}; действительно ли безопасно предположить что они...
вопрос задан: 23 May 2017 12:32
6
ответов

Востребованные примеры пользовательских средств выделения C++?

Что является некоторыми действительно серьезными основаниями угробить станд.:: средство выделения в пользу настраиваемого решения? Вы натыкались на какие-либо ситуации, где это было абсолютно необходимо для правильности, производительности, масштабируемос
вопрос задан: 31 July 2014 06:46
5
ответов

Выровненные и невыровненные доступы памяти?

Каково различие между выровненным и невыровненным доступом к памяти? Я работаю над TMS320C64x DSP, и я хочу использовать встроенные функции (C функции для инструкций по сборке), и он имеет ushort и...
вопрос задан: 23 October 2017 13:21
4
ответа

Цель выравнивания памяти

По общему признанию я не получаю его. Скажите, что у Вас есть память со словом памяти длины 1 байта. Почему Вы не можете получить доступ к переменной 4 байта длиной в единственном доступе к памяти на невыровненном адресе (т.е. нет...
вопрос задан: 20 November 2009 20:02
3
ответа

Несоответствие в C ++ между выровненной структурой и перечислением внутри контейнера

В C ++, по крайней мере, в GCC и Clang, выровненный тип, встроенный в контейнер (std :: vector), по-видимому, обрабатывается по-разному в зависимости от того, является ли тип переопределенной структурой или over -...
вопрос задан: 25 June 2019 19:38
3
ответа

Как наложить указатель sockaddr на sockaddr_in на Arm [duplicate]

У меня есть следующий код, скопированный из другого места, чтобы получить порт клиента из подключения к серверному сокету. На 64-битной Linux-архитектуре Intel это компиляция без проблем, struct sockaddr * sa; структура ...
вопрос задан: 22 February 2016 13:21
3
ответа

Проблема memcpy в MIPS (я думаю)

У меня есть какое-то программное обеспечение, с которым я работаю на Redhat системе с ICC, и он работает нормально. Когда я перенес код в систему IRIX, работающую с MIPS, я получил некоторые расчеты, которые выглядят так: «...
вопрос задан: 1 December 2013 01:46
3
ответа

Выравнивание Строки кэша (Разъяснение потребности по поводу статьи)

Я недавно встретился с тем, что я думаю, совместно использующая ложь проблема в моем приложении, и я искал статью Sutter о том, как выровнять мои данные к строкам кэша. Он предлагает следующий код C++://...
вопрос задан: 16 November 2009 21:54
2
ответа

Невыровненный доступ к памяти всегда вызывает ошибки шины?

Согласно отказу Сегментации страницы Wikipedia, ошибка шины может быть вызвана невыровненным доступом к памяти. Статья дает пример о том, как инициировать ошибку шины. В примере мы имеем к...
вопрос задан: 7 June 2012 16:22
2
ответа

Кастинг массива байтов к указателю структуры зависит от выравнивания памяти или порядка байтов?

Предположим этот код: неподписанный символьный список [3] = {1, 2, 3}; структура _struct {неподписанный символ a; неподписанный символ b; неподписанный символ c;} *s; s = (_struct *) список; я могу предположить что всегда s-> == 1...
вопрос задан: 2 June 2010 20:27
2
ответа

Как выделить и освободить выровненную память в C

Как Вы выделяете память, это выровненное к определенной границе в C (например, границе строки кэша)? Я ищу malloc/free как реализация, которая идеально была бы максимально портативной---в...
вопрос задан: 17 December 2009 03:30
2
ответа

C Функциональное выравнивание в GCC

Я пробую к байту - выравнивают функцию к 16-байтовой границе с помощью 'выровненный (16)' атрибут. Я сделал следующее: освободите __ атрибут __ ((выровнялся (16))) функция () {} (Источник: http://gcc.gnu.org/...
вопрос задан: 16 December 2009 07:01
1
ответ

Переменные стека выравниваются GCC __ атрибут __ ((выровнялся (x)))?

у меня есть следующий код: #include <stdio.h> международное основное (пустота) {плавают [4] __ атрибут __ ((выровнялся (0x1000))), = {1.0, 2.0, 3.0, 4.0}; printf (" %p %p %p %p\n", &a [0], &a[1]...
вопрос задан: 31 October 2019 04:30
1
ответ

Правила выравнивания структуры [дубликат]

Рассмотрим код: struct A {char b; bool a; double c; }; struct B {char b; double c; bool a; }; int main () {std :: cout & lt; sizeof (A) & lt; '\n'; // 16 std: ...
вопрос задан: 18 July 2011 17:12
0
ответов

Выравнивание памяти для быстрого БПФ в Python с использованием общих массивов

Я пишу приложение для обработки изображений, которое должно делать несколько вещей и он должен делать их в максимально возможной степени в режиме реального времени Сбор данных и их обработка выполняются в отдельных процессах (в основном ...
вопрос задан: 24 February 2019 03:59
0
ответов

С неопределенным поведением. Строгое правило наложения или неправильное выравнивание?

Я не могу объяснить поведение выполнения этой программы: #include #include #include typedef char u8; typedef unsigned short u16; size_t f (u8 * keyc, ...
вопрос задан: 3 December 2017 19:35
0
ответов

У фантомного типа такое же выравнивание, как у исходного?

Рассмотрим следующую структуру, которая содержит некоторые значения среды: struct environment_values ​​{uint16_t влажность; температура uint16_t; зарядка uint16_t; }; Я хотел бы добавить немного ...
вопрос задан: 10 October 2017 15:40
0
ответов

Понимание распределения и выравнивания стека

Я пытаюсь понять, как работает выравнивание стека, как описано в разделе «Выравнивание стека»? но у меня проблемы с получением небольшого примера, демонстрирующего указанное поведение. Я изучаю ...
вопрос задан: 23 May 2017 12:34
0
ответов

Анализ потока двоичных сообщений в C / C ++

I ' m написание декодера для бинарного протокола (протокол Javad GRIL). Он состоит примерно из сотни сообщений с данными в следующем формате: struct MsgData {uint8_t num; float x, y, z; ...
вопрос задан: 23 May 2017 12:31
0
ответов

Нужно ли мне беспокоиться о выравнивании при использовании оператора new размещения?

Я прочитал это Когда я должен беспокоиться о выравнивании? но я до сих пор не знаю, нужно ли мне беспокоиться о невыровненном указателе, возвращаемом оператором размещения нового -, как в этом примере :class A { общественный :...
вопрос задан: 23 May 2017 12:09
0
ответов

Почему компиляторы C не могут переупорядочить элементы структуры, чтобы исключить выравнивание заполнения? [дубликат]

Возможный дубликат: почему GCC не оптимизирует структуры? Почему C ++ не делает структуру более жесткой? Рассмотрим следующий пример на 32-битной машине x86: Из-за ограничений выравнивания, ...
вопрос задан: 23 May 2017 12:02
0
ответов

Двойное выравнивание

После обсуждения этого поста я понял, что основной причиной выравнивания элементов структуры является производительность (и некоторые ограничения архитектуры). Если мы будем исследовать ...
вопрос задан: 23 May 2017 12:02
0
ответов

лучший кроссплатформенный метод для выравнивания памяти

Вот код, который я обычно использую для выравнивания памяти с помощью встроенной Visual Studio и GCC void * align_malloc (size_t size, size_t align) {void * result; #ifdef _MSC_VER result = ...
вопрос задан: 23 May 2017 12:00
0
ответов

Почему выравнивание члена long long union больше, чем содержащего union/struct? Это верно?

Из этого вопроса можно было бы предположить, что мировоззрение союза не меньше, чем наибольшее мировоззрение его отдельных членов. Но у меня проблема с типом long long в gcc/g++. В...
вопрос задан: 23 May 2017 10:34
0
ответов

Выравнивание памяти в C-структурах

Я работаю на 32-битной машине, поэтому предполагаю, что выравнивание памяти должно быть 4 байта. Скажем, у меня есть struct: typedef struct {unsigned short v1; беззнаковый короткий v2; беззнаковый короткий v3; } ...
вопрос задан: 30 December 2016 10:02
0
ответов

Существует ли стандартный макрос для обнаружения архитектур, требующих согласованного доступа к памяти?

Допустим, что-то вроде: void mask_bytes (unsigned char * dest, unsigned char * src, unsigned char * mask, unsigned int len) {unsigned int i; for (i = 0; i
вопрос задан: 3 April 2016 20:07
0
ответов

Выравнивание к строке кэша и знание размера строки кэша

Для предотвращения ложного совместного использования я хочу выровнять каждый элемент массива к строке кэша. Таким образом, сначала я должен знать размер строки кэша, таким образом, я присваиваю каждому элементу ту сумму байтов. Во-вторых, я хочу...
вопрос задан: 20 July 2015 13:53
0
ответов

Кроссплатформенный макрос ALIGN(x)?

Я хочу создать структуру, которая имеет определенное выравнивание. Я хотел бы использовать одно и то же определение структуры для компиляторов GCC и VisualC++. В VisualC++ обычно делают так: __declspec(...
вопрос задан: 5 April 2015 11:02
0
ответов

C11 alignas vs. clang -Wcast-align

Итак, у меня есть следующий свернутый код C11, который определяет структуру, содержащую uint16_t (что означает, что структура должна быть выровнена до 2 байтов), и я хочу привести буфер символов к указателю на это ...
вопрос задан: 18 February 2015 17:23
0
ответов

Вопросы о распределителе стека Хиннанта

Я использовал распределитель стека Говарда Хиннанта, и он работает как шарм, но некоторые детали реализации мне немного неясны. Почему используются глобальные операторы new и delete? В...
вопрос задан: 21 January 2015 18:57