Csak egy példa: független libc implementációk egymástól függetlenül alakíthatják ki a szabványos struktúrák tartalmát is (pl.
struct tm
). Betehetnek extra mezőket, más pakolást írhatnak elő a fordítónak pragmákkal stb. Amíg a két oldal (a futtatható és a shared lib) azonos deklaráció alapján lett fordítva, vagyis a mezők írására-olvasására használt offset-ek azonosak a két oldalon, addig nincs gond, egyébként meg szétdől minden.