64 Bit Integer Probleme Linux

Dieses Thema im Forum "C/C++" wurde erstellt von lsware, 24.10.2006.

  1. lsware

    lsware Grünschnabel

    Dabei seit:
    24.10.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Hi,

    habe ein Problem mit unsigned long long int und dem g++
    Für vernünftige Formatierung einer Ausgabe von 64 Bit Integern mittels printf include ich die inttypes.h
    Der gcc geht klaglos über den Code, der g++ nicht - zumindest auf Linux 2.4 und 2.6. Komischerweise geht bei einem Freund unter cygwin der Code durch.

    g++ 3.4.6 und 4.1.1 zeigen den gleichen Fehler:
    -----------------
    intmax2.c: In function 'int main()':
    intmax2.c:10: error: expected `)' before 'PRIx64'
    -----------------

    Der Code:
    #include <stdio.h>
    #include <inttypes.h>

    int main( void )
    {
    int shift;
    for ( shift = 0; shift < 64; ++shift )
    {
    unsigned long long int a = 1ULL << shift;
    printf("shift = %2d, a = %016"PRIx64"\n", shift, a);
    }
    return 0;
    }
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Vielleicht wegen
    Code:
    #if !defined __cplusplus || defined __STDC_FORMAT_MACROS
    
    inttypes.h (um Zeile 47 in meiner inttypes.h)?
     
  4. lsware

    lsware Grünschnabel

    Dabei seit:
    24.10.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Jau, das wird die Zeile schon sein.
    Allerdings will ich natürlich das nicht auskommentieren oder verändern, nur um meinen Code zum laufen zu bekommen.
    Vermutlich hat sich ja jemand was dabei gedacht - stellt sich eben nur die Frage, was das war.
    Ich habe das Programm in der Zwischenzeit auf einer SUN probieren können und auch da läuft es problemlos durch.
     
  5. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Dann kompilier den Code doch mit
    Code:
    g++ -D__STDC_FORMAT_MACROS
    
    in der header-Datei steht ja drin, dass die nur gueltig sein sollten, wenn sie explizit erfragt sind. Das kannst Du ja mit dem obigen Makro erreichen, ohne irgendwelchen Code zu veraendern.
     
  6. lsware

    lsware Grünschnabel

    Dabei seit:
    24.10.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Die Idee ist nicht schlecht und auch wenn ich nicht weiß, wer "normalerweise" das Macro setzt ist das auf jeden Fall eine durchaus nette Lösung.

    VIELEN DANK!
     
Thema:

64 Bit Integer Probleme Linux

Die Seite wird geladen...

64 Bit Integer Probleme Linux - Ähnliche Themen

  1. Lua 5.3 kennt Integer-Zahlen und bitweise Operatoren

    Lua 5.3 kennt Integer-Zahlen und bitweise Operatoren: Die Lua-Entwickler haben ihre freie Scriptsprache in der Version 5.3 fertig gestellt. Lua wird seit 1993 an der Päpstlichen Katholischen...
  2. Sumatra 2.1.1 / MuPDF 1.0 Integer Overflow

    Sumatra 2.1.1 / MuPDF 1.0 Integer Overflow: Sumatra version 2.1.1 and MuPDF version 1.0 suffer from an integer overflow vulnerability. Proof of concept PDFs included. Weiterlesen...
  3. Pro-face Pro-Server EX 1.30.000 Memory Issues / Integer Overflow

    Pro-face Pro-Server EX 1.30.000 Memory Issues / Integer Overflow: Pro-face Pro-Server EX versions 1.30.000 and PCRuntime versions 3.1.00 suffer from memory related and integer overflow vulnerabilities. Proof of...
  4. ergebniss als integer

    ergebniss als integer: Hallo, ist ne ziemlich einfache Sache, aber ich komm einfach nicht drauf:( ich hab ne Formel wzeit=$(expr -0.109091*240.0+110.5454 | bc); echo...
  5. Strings in Integer und Double Werte ändern

    Strings in Integer und Double Werte ändern: Hallo, ich habe ein Problem:hilfe2: , welches für einige sicher in kurzer Zeit zu lösen ist. Ich möchte einen Taschenrechner unter c prog. der...