Wenn nach häufigem undefiniertem Verhalten in C gefragt wird , wird manchmal auf die strenge Aliasing-Regel verwiesen. Worüber reden
Wenn nach häufigem undefiniertem Verhalten in C gefragt wird , wird manchmal auf die strenge Aliasing-Regel verwiesen. Worüber reden
Ich habe Gewerkschaften früher bequem benutzt; Heute war ich alarmiert, als ich diesen Beitrag las und erfuhr, dass dieser Code union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; //...
Dies ist nur, um meine eigene Neugier zu befriedigen. Gibt es eine Implementierung davon: float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; } in Rust? Wenn es existiert, geben Sie den Code...
Ich habe eine Weile gesucht, kann aber keine klare Antwort finden. Viele Leute sagen, dass die Verwendung von Gewerkschaften zum Schreiben von Wortspielen undefiniert und eine schlechte Praxis ist. Warum ist das? Ich kann keinen Grund erkennen, warum es etwas Undefiniertes tun würde, wenn man...
In seinem kürzlich gehaltenen Vortrag "Type punning in modernem C ++" sagte Timur Doumler , dass std::bit_castdies nicht zum Bit-Casting floatin ein verwendet werden kann, unsigned char[4]da Arrays im C-Stil nicht von einer Funktion zurückgegeben werden können. Wir sollten entweder std::memcpyC ++...