Name für einen eigenen Datentyp ist unzulässig??



  • Hast du irgendwo ein #define small char oder so? 😕



  • Nein :D, keine defines gemacht!



  • Schau dir den Output des Präprozessors an. Da gibt es vielleicht Hinweise, was passiert ist.



  • ganz einfache vermutung:

    du hast deinen datentyp nicht mit einem semikolon abgeschlossen.

    mach mal

    class Tile{
    
    } ; //<-- !!
    

    so long



  • Wo kann ich mir den Output ansehen?

    Meine class Tile wird mit einem ; abgeschlossen, daran liegt es also nicht 😕



  • PCLexikon schrieb:

    Wo kann ich mir den Output ansehen?

    Wird in der Doku deines Compilers stehen. Beim g++ geht dies mit g++ -E datei.cpp



  • -> small ist eine globale Variable, die du vergessen ahst?
    -> small ist ein Datentyp oder eine Funktion?
    -> small wird in einer eingebundenen std-Headerdatei verwendet?
    -> small wurde in einer std-Headerdatei als Makro definiert?



  • fährst du einen borland?

    * Borland C++ unterscheidet folgende Zeigertypen:
    
    (1) near-Zeiger: 16Bit, schnelle Zeigerarithmetik mgl.
    
    (2) far-Zeiger: 32Bit=16Bit-Segment-Adresse + 16Bit-Offset. Wegen integrierter 
    Segment-Adresse keine Zeigerarithmetik mgl.
    
    (3) huge-Zeiger: 32Bit. Vor Aufruf wird jeweils absolute Adresse berechnet, 
    wodurch langsame Zeigerarithmetik mgl. wird.
    
    (4) Segment-Zeiger: 16Bit.
    
    * Folgende Speichermodelle erlaubt Borland C++:
    
    (1) Tiny: Alle 4 Segmente beginnen mit gleicher Adresse. Es werden 
    ausschließlich near-Zeiger verwendet. Kein far-Heap.
    
    (2) Small: Daten+Stack (64KB) und Code (64KB); far-Heap (1MB) ebenfalls 
    allokierbar.
    
    (3) Medium: far-Code und near-Stack/Heap.
    
    (4) Compact: near-Code, far-Stack/Heap.
    
    (5) Large: far-Code, far-Stack/Heap.
    
    (6) Huge: Wie Lage, aber nur hier können statische Strukturen>64KB angelegt 
    werden.
    


  • So, ich bekomm das mit dem Output nicht hin, habe das noch nie gemacht:

    Compiler: Visual Studio 6.0

    Und nein, es gibt keine variable die so heißt, in dem programm gibt es nichts was sonst noch small heißt.



  • Compiler VC 6.0 SP6

    dummy.cpp:

    class Tile
    {
    };
    
    int main()
    {
      Tile small [64] [64];
      Tile medium [128][128];
      Tile large [256][256];
    
      return 0;
    }
    

    compiliert einwandfrei. Nachfolgende warnings sind wohl klar:

    --------------------Konfiguration: Dummy - Win32 Debug--------------------
    Kompilierung läuft...
    Dummy.cpp
    c:\projects\dummy\dummy.cpp(12) : warning C4101: 'large' : Unreferenzierte lokale Variable
    c:\projects\dummy\dummy.cpp(11) : warning C4101: 'medium' : Unreferenzierte lokale Variable
    c:\projects\dummy\dummy.cpp(10) : warning C4101: 'small' : Unreferenzierte lokale Variable
    Linker-Vorgang läuft...

    Dummy.exe - 0 Fehler, 3 Warnung(en)

    Ich glauube du verschweigst uns was 😃 😉

    mfg JJ



  • Vielleicht überflüsig zu erwähnen, aber hast du probiert, eine Variable anderen Typs mit namen small in einer anderen datei zu deklarieren? Mit gleichen Headern?



  • Mach mal ein

    #undef small
    

    vor deinen Code. Bei mir (VC7) sieht das in etwa so aus:

    #define small char
    

    Oder du nennst es eben Small oder ganz anders...



  • Wie wäre es mit "klein"?


Anmelden zum Antworten