Resultados da pesquisa a pedido "type-punning"

2 a resposta

bits flutuantes e aliasing estrito

Estou tentando extrair os bits de um flutuador sem invocar um comportamento indefinido. Aqui está minha primeira tentativa: unsigned foo(float x) { unsigned* u = (unsigned*)&x; return *u; }Pelo que entendi, isso não garante que funcione devido a ...

5 a resposta

Punção de caracteres com segurança * para dobrar em C

Em um código abertoprograma que escrevi [http://honeypot.net/project/pgdbf], Estou lendo dados binários (gravados por outro programa) de um arquivo e produzindo ints, dobros e outros tipos de dados variados. Um dos desafios é que ele precisa ser ...

6 a resposta

@Fix para remover o ponteiro com punção de tipo quebrará o aliasing estrito

Estou tentando corrigir dois avisos ao compilar um programa específico usando o GCC. Os avisos são: warning: o cancelamento da referência ao ponteiro puncionado por tipo quebrará as regras de alias estrito [-Wstrict-aliasing] e os dois ...

8 a resposta

aliasing e alinhamento estritos

Preciso de uma maneira segura de alternar entre tipos arbitrários de POD, em conformidade com a ISO-C ++ 11, considerando explicitamente os itens 3.10 / 10 e 3.11 do n3242 ou posterior. Há muitas perguntas sobre aliasing estrito aqui, a maioria ...

2 a resposta

Por que o POSIX contradiz os padrões ISO C [fechado]

...

2 a resposta

Aliasing estrito do C ++ quando não estiver usando o ponteiro retornado pelo posicionamento new

Isso pode causar um comportamento indefinido? uint8_t storage[4]; // We assume storage is properly aligned here. int32_t* intPtr = new((void*)storage) int32_t(4); // I know this is ok: int32_t value1 = *intPtr; *intPtr = 5; // But can one of the ...

2 a resposta

Aliasing estrito de ponteiro: o acesso através de um ponteiro 'volátil' / referência é uma solução?

Na esteira deum problema específico [https://stackoverflow.com/questions/2980920/strict-pointer-aliasing-any-solution-for-a-specific-problem/2981505#2981505] , uma resposta automática e comentários, gostaria de entender se é uma solução adequada, ...

1 a resposta

Armazenamento baseado em char genérico [] e evitando o UB relacionado ao estrito aliasing

2 a resposta

estruturas de punição de união com “sequência inicial comum”: Por que C (99+), mas não C ++, estipula uma 'declaração visível do tipo de união'?

fundoDiscussões sobre a natureza da punição de tipo definida pela não-ou-implementação por meio de umunion normalmente cite os seguintes bits, aqui via @ecatmur ...

3 a resposta

Buffers de memória compartilhada em C ++ sem violar regras estritas de alias

Eu estou lutando com a implementação de um buffer de memória compartilhada sem quebrar as regras de aliasing rigorosas do C99.Suponha que eu tenha algum códi...