long long mit gcc



  • hi!

    muss für die schule ein prog schreiben was den datentyp "long long" benutzt ... soll angeblich mit gcc mit parameter -o3 unter unix funzen...
    unter vc++ gibts immer ne fehlermeldung ....long vor long nicht erlaubt oder so ähnlich....
    kann man da was machen das vc++ auch long long kann?

    Gruß

    Aliendrummer



  • aliendrummer schrieb:

    muss für die schule ein prog schreiben was den datentyp "long long" benutzt ... soll angeblich mit gcc mit parameter -o3 unter unix funzen...

    Meinst du -O3? Das ist eine Einstellung zur Optimierung. Mit long long hat das nix zu tun.

    aliendrummer schrieb:

    unter vc++ gibts immer ne fehlermeldung ....long vor long nicht erlaubt oder so ähnlich....

    Dann benutzt du vermutlich VC6? Der Compiler dort ist von 1998, long long wurde aber erst mit dem C99 Standard eingeführt. Es gibt auch keine Möglichkeit den Typ mit einem Workaround nachträglich zu integrieren. Zumindest ist mir diesbzgl. nichts bekannt. Allerdings kennt der MSC 6 bereits einen 64 Bit Typ, __int64. Ist jedoch kein Standard.

    aliendrummer schrieb:

    kann man da was machen das vc++ auch long long kann?

    Ja, benutz einen aktuellen Compiler. Bei Microsoft gibts zB des VC++ 2003 Toolkit mit Compiler der Version 7.1.



  • groovemaster schrieb:

    Es gibt auch keine Möglichkeit den Typ mit einem Workaround nachträglich zu integrieren.

    Nicht?

    groovemaster schrieb:

    Allerdings kennt der MSC 6 bereits einen 64 Bit Typ, __int64. Ist jedoch kein Standard.

    Doch!



  • short short schrieb:

    groovemaster schrieb:

    Es gibt auch keine Möglichkeit den Typ mit einem Workaround nachträglich zu integrieren.

    Nicht?

    Es gibt keine Möglichkeit, den Typ long long unter diesem Namen nachzurüsten. Um allerdings einen compilerunabhängigen 64-Bit-Integertyp zu erhalten, könnte man so etwas machen:

    #if defined(_MSC_VER) && (_MSC_VER <= 1200) /* wenn MSVC und Version <= 6 */
     typedef unsigned __int64   ULONGLONG;
     typedef __int64            LONGLONG;
    #else
     typedef unsigned long long ULONGLONG;
     typedef long long          LONGLONG;
    #endif
    

    Moritz



  • short short schrieb:

    groovemaster schrieb:

    Allerdings kennt der MSC 6 bereits einen 64 Bit Typ, __int64. Ist jedoch kein Standard.

    Doch!

    Nein!



  • groovemaster hat recht


Log in to reply