typ: "size_t"

Gast #1024700
Lesenswert?

Hallo Lothar,

wenn's denn bloß so einfach wäre. Zeig uns doch bitte mal, wo genau Du 
in "stddef.h" ein "typedef ?? ?? size_t" findest. Es ist sicher nicht 
leicht, dort durch alle "ifdefs" (
1
_SIZE_T_DECLARED, _SIZE_T_DEFINED,
2
_SIZE_T_DEFINED_
 usw.!)zu steigen und das Gesuchte zu finden.

Aus http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html 
geht aber durch

#define SIZE_MAX   (__CONCAT(INT16_MAX, U))
//largest value a size_t can hold.

hervor, dass die Antwort wohl "uint16_t" ist.

Gruß
 risu
Gast #1025257
Lesenswert?

Wenn man für die AMD64-Architektur kompiliert, ist häufig sizeof(int) == 
4, aber sizeof(size_t) == 8.
Deswegen sollte man immer den geeigneten Typ verwenden und nicht 
"unsigned int" schreiben, wenn man "size_t" meint.
Moderator Persönliche Seite #1025390
Lesenswert?

size_t wird von praktisch allen Funktionen der Standardbibliothek
benutzt, die irgendwas mit der Größe eines Objekts zu tun haben.
Das Ergebnis des sizeof-Operators ist von diesem Typ, das Argument
von malloc hat diesen Typ, etc. pp.  Da zu jeder dieser Funktionen
auch eine Headerdatei gehört, die man ohnehin mit aufnehmen muss
(um den korrekten Funktionsprototypen zu erhalten), darf man einfach
davon ausgehen, dass diese Datei auch auf irgendeine Weise in der
Lage ist, die Typdefinition für size_t heranzuschaffen.

All die Verrenkungen in den Headers sind einfach nur dafür da, dass
der Typ zwar definiert wird, wenn er benötigt wird, aber nie versucht
wird, ihn zweimal zu definieren (was ein Fehler wäre).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren