typedef - malloc: Besser, schlechter oder wumpe ?



  • proggingmania schrieb:

    SG1 schrieb:

    * _Grossbuchstabe verwendet man nicht.

    Was verwendet man dann

    Irgendwas anderes.

    und warum ? 😕

    Weil alle Bezeichner, die mit _Grossbuchstabe anfangen, reserviert sind.



  • [quote="proggingmania"]

    Dafür
    error C2065: '_MyStruct' : undeclared identifier bei

    p = malloc( sizeof( _MyStruct ) );
    

    Der Identifier heißt ja auch struct _MyStruct

    proggingmania schrieb:

    Z.B. hat der vorher das hier

    int const maxlen = 100;
    MyStruct myStruct[maxlen];
    
    size_t const maxlen = 100;
    

    aber wenn dein Compiler das nicht kann, dann nimm

    enum { maxlen = 100 };
    


  • SG1 schrieb:

    Weil alle Bezeichner, die mit _Grossbuchstabe anfangen, reserviert sind.

    Komisch das der dann nicht meckert, der guteste 🙄 .



  • rüdiger schrieb:

    aber wenn dein Compiler das nicht kann, dann nimm

    enum { maxlen = 100 };
    

    Supie das klappt, gefällt mir auch gleich viel besser, als so ne 'festgebrannte' 100.



  • progginmania schrieb:

    SG1 schrieb:

    Weil alle Bezeichner, die mit _Grossbuchstabe anfangen, reserviert sind.

    Komisch das der dann nicht meckert, der guteste 🙄 .

    Nimmt dein Compiler vielleicht zufällig hin. Aber es ist nach meiner Meinung absolut keine gute Idee, sich an Fehler zu gewöhnen, nur weil zufällig die Version des von dir verwendeten Compilers auf dem Betriebssytem mit deiner Hardware zu einer bestimmten Uhrzeit den Fehler akzeptiert...

    YMMV

    (Wenn du nicht glaubst, das es ein Fehler ist, schau im ISO C-Standard Abschnitt 7.1 (hatten gerade erste einen Thread drüber))



  • progginmania schrieb:

    SG1 schrieb:

    Weil alle Bezeichner, die mit _Grossbuchstabe anfangen, reserviert sind.

    Komisch das der dann nicht meckert, der guteste 🙄 .

    Gerechnet auf alles, was man falsch machen kann, meckert er sowieso fast nie.



  • proggingmania schrieb:

    printf( "%i %i ", sizeof(_MyStruct), sizeof(MyStruct) );
    

    Das hier geht im übrigen auch nur mit einem C++-Compiler.



  • rüdiger schrieb:

    (Wenn du nicht glaubst, das es ein Fehler ist, schau im ISO C-Standard Abschnitt 7.1 (hatten gerade erste einen Thread drüber))

    Neee, nicht weil ich es nicht glaube, sondern weil ich es so in relativ großen Projekten gesehen hab.

    Naja, ist ok, ich danke euch allen.

    Gruß,
    p.



  • Du musst entweder

    MyStruct *p = malloc(sizeof(MyStruct));
    

    oder

    MyStruct *p = malloc(sizeof(struct _MyStruct));
    

    schreiben

    edit:

    Mist, hab nicht gesehen, dass es eine 2. Seite gibt 😉 die Lösung war ja schon oben.



  • proggingmania schrieb:

    rüdiger schrieb:

    (Wenn du nicht glaubst, das es ein Fehler ist, schau im ISO C-Standard Abschnitt 7.1 (hatten gerade erste einen Thread drüber))

    Neee, nicht weil ich es nicht glaube, sondern weil ich es so in relativ großen Projekten gesehen hab.

    Da siehst du: Auch Profis machen Fehler...



  • rüdiger schrieb:

    Da siehst du: Auch Profis machen Fehler...

    Könnt mir vorstellen, das die das wissen und entweder drauf pfeifen, oder ihre eigenen Standards machen.



  • proggingmania schrieb:

    rüdiger schrieb:

    (Wenn du nicht glaubst, das es ein Fehler ist, schau im ISO C-Standard Abschnitt 7.1 (hatten gerade erste einen Thread drüber))

    Neee, nicht weil ich es nicht glaube, sondern weil ich es so in relativ großen Projekten gesehen hab.

    Könnte mit ein Grund sein, warum relativ große Projekte manchmal scheitern...


Anmelden zum Antworten