Welcher Typ zum Subtrahieren von 2 size_t?
Welcher Typ in C sollte verwendet werden, um den Unterschied zwischen den Größen zweier Objekte darzustellen?
Wiesize_t
ist unsigniert, so etwas wie
size_t diff = sizeof (small_struct) - sizeof (big_struct);
Natürlich wäre das nicht richtig und es scheint mir, dass es kein wirklich unterzeichnetes Äquivalent gibt.
ptrdiff_t
klingt irgendwie verlockend, aber
ptrdiff_t
auf einer solchen plattform auch 32-bit? In diesem Fall sind für den Unterschied zwischen zwei Objekten nur 16 Bit erforderlich. Wenn Sie jedoch ptrdiff_t verwenden, erhalten Sie eine 32 Bit breite Variable, die suboptimal ist.Was ist also ein geeigneter, portabler Typ, um mit einem solchen Wert zu arbeiten?
Edit:
Ich weiß über ssize_t Bescheid, aber es ist