( persicsb | 2017. 12. 27., sze – 17:32 )

Nem GCCismről/clangismről van itt szó, hanem arról, hogy szabvány szerint gépfüggő viselkedést használsz.

Például amint leírod egy C kódban, hogy char, short, int vagy long, máris platformfüggő kódot írtál. Ugyanis az int meg a long mérete szabvány szerint gépfüggő.Pláne ha mondjuk még bitműveleteket is akarsz végezni, és feltételezed mondjuk, hogy az int az 32 bit hosszú.

Mégsem nevezzük az ilyen kódokat szaroknak. Pedig platformfüggőek. Például ha van egy olyan struct, ami tartalmaz ként int-et meg egy longot, az más méretű 32 biten és más 64 biten. Azaz a kód leírásakor undefined, hogy mekkora a mérete a struktúrának, csak fordításkor kap értéket. És ez még nem is csak az a fajta undefined behavior, amit a C megenged, ez színtisztán a gépfüggőség.

Vagy te talán nem használsz int, meg long adattípusokat, csak stdint.h szerinti exact-width típusokat?

Javaban, CLR-ben (C#, VB#) nincs ilyen, ott minden primitív típus adott méretű, attól függetlenül, hogy a CPU 64 vagy 32 bites.