Pipeline graphique
 Tout Structures de données Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Macros
defTypes.h
Aller à la documentation de ce fichier.
1 #ifndef _DEF_TYPES
2 #define _DEF_TYPES
3 typedef unsigned short word;
4 typedef unsigned int dword;
5 typedef unsigned char uchar;
6 typedef unsigned int uint;
7 
8 
9 typedef short type16;
10 typedef int type32;
11 typedef double type64;
12 
13 typedef unsigned char byte;
14 
16 typedef union { char byte[2]; type16 value; } byte16;
18 typedef union { char byte[4]; type32 value; } byte32;
20 typedef union { char byte[8]; type64 value; } byte64;
21 
23 
26 template<class T> void Swap(T &x) {
27  byte c;
28  if (sizeof(T)==1) return;
29  else if (sizeof(T)==2) {
30  byte16 *v16 = (byte16*)&x;
31  c = v16->byte[0]; v16->byte[0] = v16->byte[1]; v16->byte[1] = c;
32  } else if (sizeof(T)==4) {
33  byte32 *v32 = (byte32*)&x;
34  c = v32->byte[0]; v32->byte[0] = v32->byte[3]; v32->byte[3] = c;
35  c = v32->byte[1]; v32->byte[1] = v32->byte[2]; v32->byte[2] = c;
36  } else if (sizeof(T)==8) {
37  byte64 *v64 = (byte64*)&x;
38  c = v64->byte[0]; v64->byte[0] = v64->byte[7]; v64->byte[7] = c;
39  c = v64->byte[1]; v64->byte[1] = v64->byte[6]; v64->byte[6] = c;
40  c = v64->byte[2]; v64->byte[2] = v64->byte[5]; v64->byte[5] = c;
41  c = v64->byte[3]; v64->byte[3] = v64->byte[4]; v64->byte[4] = c;
42  }
43 }
44 
46 #define SwapByte32(u) (((0x000000ff & (u)) << 24) | ((0x0000ff00 & (u)) << 8) | ((0x00ff0000 & (u)) >> 8) | ((0xff000000 & (u)) >> 24))
47 #define SwapByte16(u) (((0x00ff & (u)) << 8) | ((0xff00 & (u)) >> 8))
49 
50 #endif
51 
union permettant d'acceder individuellement aux octets d'un stockage de 4 octets. ...
Definition: defTypes.h:18
union permettant d'acceder individuellement aux octets d'un stockage de 8 octets. ...
Definition: defTypes.h:20
type32 value
Definition: defTypes.h:18
type16 value
Definition: defTypes.h:16
unsigned char byte
un octet.
Definition: defTypes.h:13
char byte[2]
Definition: defTypes.h:16
short type16
n'importe quel type faisant 16 bits
Definition: defTypes.h:9
type64 value
Definition: defTypes.h:20
unsigned int uint
Definition: defTypes.h:6
union permettant d'acceder individuellement aux octets d'un stockage de 2 octets. ...
Definition: defTypes.h:16
unsigned char byte
Definition: pgm.h:2
char byte[8]
Definition: defTypes.h:20
char byte[4]
Definition: defTypes.h:18
unsigned int dword
Definition: defTypes.h:4
int type32
n'importe quel type faisant 32 bits
Definition: defTypes.h:10
void Swap(T &x)
Fonction permettant de commuter les octets pour les conversions big endian <-> little endian...
Definition: defTypes.h:26
unsigned char uchar
Definition: defTypes.h:5
unsigned short word
Definition: defTypes.h:3
double type64
n'importe quel type faisant 64 bits
Definition: defTypes.h:11