
#cpp #programowanie #informatyka #programista15k
Zagadka nr 8. Jakiego outputu programu się spodziewasz?
Zagadka nr 8. Jakiego outputu programu się spodziewasz?

Jakiego outputu się spodziewasz
- > 38.9% (21)
- < 14.8% (8)
- == 46.3% (25)
- Najlepsze
- Wszystkie komentarze







Też przydatne jeśli potrzebujesz strukture załadować bezpośrednio z pliku, np. gdy chcesz sobie nagłówek pliku BMP załadować bezpośrednio od pamięci itp.
To że działa nie oznacza że jest poprawne
Standard C:
@sorek: nooo chyba nie koniecznie ( spada wydajność przy dostępie do pamięci). Najlepiej to chyba ręcznie ustawiać/pakować
http://www.catb.org/esr/structure-packing/
Jak masz niewyrównane dane i chcesz je np. odczytać jako int to najpierw musisz zrobić memcpy pod adres prawidłowo wyrównany do rozmiaru int i dopiero
Mówisz o strict aliasingu, czy o alignmancie?
Tutaj mam niewyrównanego inta i nie
Wywołanie
constexprnie może mieć UB.Możesz pokazać jakiś mały snippet?
Na podstawie Twojego przykładu kodu, jakbyś napisał tak:
Foo f;int* foo = &f.x2; // UB, bo nie jest dozwolone utworzenie wskaźnika na int, który nie jest wyrównany do rozmiaru int
@Krolik: