typ: "size_t"

Gast
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
Moderator (Firma: Titel) Persönliche Seite
> wie groß (byte) ist solch eine variable im gcc
Na gut, wenn das Zeug so versteckt ist,
wie wärs mit dem pragmatischen Ansatz:
1
   int s = sizeof(size_t);

Woanders hatte ich z.B. sowas gefunden:
1
#ifndef  _SIZE_T_DEF
2
typedef  unsigned int  size_t;
3
#define _SIZE_T_DEF
Aber da war die Zielarchitektur auch fest vorgegeben....
Gast
ISO/IEC 9899:1999

7.17 Common definitions <stddef.h>

The types are
....
size_t
which is the unsigned integer type of the result of the sizeof operator;
....
Gast
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
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.