Questions sur type-punning

11
réponses

Quelle est la stricte aliasing règle?

en posant des questions sur comportement commun non défini dans C , les âmes plus éclairées que je me suis référé à la règle stricte d'alias. De quoi parlent-ils?
demandé sur 2008-09-19 05:30:27
14
réponses

But des syndicats en C et c++

j'ai utilisé les syndicats plus tôt confortablement; aujourd'hui j'ai été alarmé quand je lis ce post et j'ai ap ... ritage comme une caractéristique de langage C++ . C'est la raison pour Andrey réponse du reste comme l'a accepté.
demandé sur 2010-02-22 14:17:19
4
réponses

Est-ce que le poinçonnage de type à travers une union n'est pas spécifié dans C99, et est-il devenu spécifié dans C11?

Un certain nombre de réponses pour le Dépassement de Pile question l'Obtention de la norme IEEE Simple précision bi ... utenir cela, mais il serait agréable de savoir si c'est spécifié dans la norme, ou juste une extension très commune.
demandé sur 2012-07-25 01:58:25
6
réponses

C # Fonction "non sécuritaire" - * (flottant*) (&résultat) vs.(flottant) (résultat))

quelqu'un Peut-il expliquer de façon simple les codes ci-dessous: public unsafe static float sample(){ int resu ... return (float)(result); est-il nécessaire d'utiliser une fonction dangereuse si votre retour *(float*)(&result)?
demandé sur 2012-10-04 12:04:10
5
réponses

Syndicats et qualification

je cherche depuis longtemps, mais je ne trouve pas de réponse claire. beaucoup de gens disent que l'utilisati ... quement, j'utilise les syndicats pour convertir entre les flotteurs et les hexagones bruts pour envoyer via bus CAN.
demandé sur 2014-09-04 15:56:08
1
réponses

stockage aligné et aliasing strict

j'utilise actuellement aligned_storage pour implémenter un type 'optionnel' similaire à celui de boost::optional. Pour ac ... , je me sentirais mieux si vous pouviez faire référence à la norme dans votre réponse (elle m'aide à dormir la nuit :P).
demandé sur 2012-11-20 08:20:19
3
réponses

L'alias T* avec char* est autorisé. Est-il permis aussi dans l'autre sens?

Note: cette question a été renommée et réduite pour la rendre plus précise et plus lisible. La plupart des comme ... e sens. Par exemple: char * c = read_socket(...); unsigned * u = reinterpret_cast<unsigned*>(c); // huh?
demandé sur 2012-09-27 04:45:24
6
réponses

Réutiliser un tampon flottant pour les doubles sans comportement non défini

dans une fonction C++ particulière, il se trouve que j'ai un pointeur vers un grand tampon de flotteurs que je veux ut ... autorisée en C++). on peut supposer que le float buffer est correctement aligné pour l'utiliser en double.
demandé sur 2018-07-11 18:35:46
2
réponses

les structures de "pointage" de l'union avec une "séquence initiale commune": pourquoi C (99+), mais pas C++, stipulent une "déclaration visible du type d'union"?

Background Discussions sur la nature essentiellement non-ou-mise en oeuvre-définie de la saisie par type via un union t ... catalogue utile de faits pertinents sur cette clause C et son omission (intentionnelle ou non) de C++. Alors, allons-y!
demandé sur 2016-01-05 19:06:09
4
réponses

bouts de flotteur et aliasing strict

j'essaie d'extraire les bits d'un flotteur sans invoquer un comportement non défini. Voici ma première tentative: unsign ... irement<sizeof(unsigned)==sizeof(float), unsigned>::type u; memcpy(&u, &x, sizeof u); return u; }
demandé sur 2010-12-01 22:40:16
7
réponses

Quelle est la bonne façon de taper un flotteur sur un int et vice-versa?

le code ci-dessous effectue une opération de racine carrée inverse rapide par quelques hacks de bits. L'algorithme a proba ... 32_t*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; }
demandé sur 2013-07-22 18:18:08
5
réponses

Correction pour le déréférencement type-pointeur pointu cassera strict-aliasing

j'essaie de corriger deux avertissements lors de la compilation d'un programme spécifique en utilisant GCC. Les avertiss ... eu de nombreuses suggestions pour utiliser un syndicat - qu'est-ce qui pourrait être un syndicat approprié pour ce cas?
demandé sur 2012-01-11 22:28:29
4
réponses

aliasing et alignement stricts

j'ai besoin d'un moyen sûr pour alias entre les types de POD arbitraires, conforme à ISO-C++11 explicitement en considéra ... x -Wall -Wextra -O3 -fstrict-aliasing -o alias.exe alias.cpp * Edit: Et si non, comment pourrait-on modifier ce légal?
demandé sur 2012-04-01 16:34:11
1
réponses

Tapez punning with void * sans enfreindre la règle d'alias stricte en C99

j'ai récemment rencontré la règle d'alias stricte, mais j'ai du mal à comprendre comment utiliser void * pour effectuer l ... e par les deux x et un déréférencé y. Si type-punning n'est pas défini via void * quel est le but de l' void * en C99?
demandé sur 2013-04-01 18:10:10
4
réponses

aliasing strict et alignement de la mémoire

j'ai du code de performance critique et il y a une fonction énorme qui affecte comme 40 tableaux de différentes tailles s ... quoi il en résulte toujours le même mauvais résultat. -FNO-strict-aliasing corrige le problème, comme prévu dans ce cas.
demandé sur 2013-01-05 12:23:19
5
réponses

Le casting de réinterprétation est-il la plupart du temps inutile?

j'ai lu diverses questions sur reinterpret_cast, et j'ai aussi lu les termes pertinents dans la norme c++. Essentielleme ... vertissons en toute sécurité entre les pointeurs vers des types de données de base de même taille/ alignement, comme char*-->
demandé sur 2011-02-20 17:32:18
5
réponses

Reinterpret structure avec des membres du même type qu'un tableau d'une manière conforme à la norme [dupliquer]

cette question a déjà une réponse ici: Coulée double tableau à une structure de d ... tatic_assert n'est pas déclenché implique que operator[] fait ce qui est attendu et n'invoque pas UB à l'exécution?
demandé sur 2017-01-02 00:24:24