je travaille avec Qt 4.7 je voudrai déclarer des unsigned __int64 comme dans le visual C++ , comment je fais
merci
Version imprimable
je travaille avec Qt 4.7 je voudrai déclarer des unsigned __int64 comme dans le visual C++ , comment je fais
merci
Bonjour,
Trois voies se présentent devant vous : utiliser qint64, faire un #include <sys/types.h> ou bien faire un typedef int64 unsigned long long int.
Notez que Qt 4.7 est une version de framework tandis que Visual C++ est un IDE : ce sont deux choses différentes. De plus, votre tag n'est pas correct ; il s'agit de Qt 4, non de Qt 3.
Bonne continuation,
Amnell.
merci beacoup,mais l'erreur persiste, en déclarant un unsigned int, ou un qint64 , on lui affectuant les valeurs suivantes:
1610612736; 3221225472; 3489660928..... il m'affiche l'erreur suivantes:
this constant decimal is unsigned only in ISO C90
Je ne comprend pas,je sais pas comment corriger.
j'ai besoin de déclarer un registre de 64 bit accessible bit à bit, et aussi comme un entier non signé pour l'utiliser comme un indice d'un tableau.
merci de m'aider.
Bonjour,
Pouvons nous voir votre code qui déclenche cette erreur ?
Ah si, je me rappelle.
Il faut écrire un truc du genre :
Par contre, je ne sais plus si on met le U avant ou après le nombre :)Code:const unsigned int myVar = 1901348294U;
Le U permet de dire que le nombre est bien un nombre non signé comme ça, le compilateur, il sait :)
j'ai rajouté le 'U' comme vous me l'aviez dit, mais j'ai les erreurs suivantes:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 typedef struct bit{ // Définition de la structure d'un seul bit unsigned int b:1; } bit; typedef struct bit64 {// Registre 64 bits unsigned int b63:1, b62:1, b61:1, b60:1, b59:1, b58:1, b57:1, b56:1; unsigned int b55:1, b54:1, b53:1, b52:1, b51:1, b50:1, b49:1, b48:1; unsigned int b47:1, b46:1, b45:1, b44:1, b43:1, b42:1, b41:1, b40:1; unsigned int b39:1, b38:1, b37:1, b36:1, b35:1, b34:1, b33:1, b32:1; unsigned int b31:1, b30:1, b29:1, b28:1, b27:1, b26:1, b25:1, b24:1; unsigned int b23:1, b22:1, b21:1, b20:1, b19:1, b18:1, b17:1, b16:1; unsigned int b15:1, b14:1, b13:1, b12:1, b11:1, b10:1, b9:1, b8:1; unsigned int b7:1, b6:1, b5:1, b4:1, b3:1, b2:1, b1:1, b0:1; } bit64; //--------------------------Registre 64 divisé 32/32------------------------- typedef struct reg64 {// structure Registre 32-32 unsigned int Rigth, Left; } reg64; typedef union bitarray {// structure registre 32-32 avec accés bit par bit reg64 intreg; unsigned long long int dblereg; bit64 b64; } bitarray; donc quand je définit: bitarray sample,je doit pouvoir faire: sample.dblereg=0x85E813540F0AB405; et je doit trouver alors: sample.reg64.Rigth= 0x0F0AB405; et sample.reg64.Left=0x85E81354; sample.bit64.b0=1; et ainsi de suite. et pour acceder à une table S,je fais: indice = sample2.intreg.Rigth & 0x0000003F;// et bit à bit JE DOIT AVOIR UN ENTIER NON SIGNé sample1.intreg.Rigth=S[indice]; // sample1 est un bitarray aussi.
Code:
1
2 error: collect2: ld returned 1 exit status warning: Qmake does not support build directories below the source directory.