17. marts 2005 - 08:16
Der er
12 kommentarer og 1 løsning
Define med : high##ULL?
Jeg har følgende define i noget software jeg har fået leveret: #define UINT64_HILO(high,low) ((((high##ULL))<<32)|low) som bruges f.eks. i følgende linie divconst=UINT64_HILO(0,3600000000); Jeg får desværre følgende fejl: error C2059: syntax error : 'bad suffix on number' error C2146: syntax error : missing ')' before identifier 'L' error C2059: syntax error : ')' Hvad gør '##ULL'? Kan det skrives på en anden måde, som forhåbentligt ikke giver en fejl?
Annonceindlæg fra Deloitte
17. marts 2005 - 08:22
#1
ULL må være unsigned long long hvilken compiler bruger du ?
17. marts 2005 - 08:25
#2
Jeg bruger Visual C++ 6.0
17. marts 2005 - 08:29
#3
#define UINT64_HILO(high,low) (((((_int64)high)<<32)|low) måske
17. marts 2005 - 08:30
#4
Men jeg er bange for at der skal laves mere kode om !
17. marts 2005 - 08:42
#5
Fik jeg sagt at koden senere skal kompileres med en ARM compiler...
17. marts 2005 - 08:59
#6
Nej. Understøtter ARM C compiler 64 bit integers ?
17. marts 2005 - 09:03
#7
Ja, som 'long long' eller 'unsigned long long'
17. marts 2005 - 09:12
#8
Hvis den understøtter unsigned long long, så kende den vel også ULL !?
17. marts 2005 - 09:15
#9
Det skulle man jo tro :) Men gør Visual C++ 6.0?
17. marts 2005 - 09:29
#10
Nej. Fordi i VC++6 hedder det en _int64 og ikke en long long (og LL er en ulogisk forkortelse for _int64).
17. marts 2005 - 09:30
#11
Men #ifdef er jo opfundet til den slags !
17. marts 2005 - 09:43
#12
Ok. Tak for hjælpen (igen :) ) (Husk svar = point)
17. marts 2005 - 09:45
#13
svar
Kurser inden for grundlæggende programmering