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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
void printTypes(void){
char charTmp;
signed char scharTmp;
unsigned char *ptUCharTmp;
short shortTmp;
int intTmp;
long longTmp;
long long longlongTmp;
printf("\r\n- Fonction printTypes()\r\n");
printf("\t- Taille d'un char : %d bits => correspond à une unité de sizeof\r\n", CHAR_BIT);
printf("\t- Sizeof:\r\n");
// ****************
printf("\t\tchar: %ld => ", sizeof(char));
charTmp = 0; charTmp--;
if (charTmp > 0){
printf("non-signé\r\n");
} else {
printf("signé\r\n");
}
printf("\t\tuchar: %ld\r\n", sizeof(unsigned char));
printf("\t\tschar: %ld\r\n", sizeof(signed char));
// ****************
printf("\t\tshort: %ld => ", sizeof(short));
shortTmp = 0; shortTmp--;
if (shortTmp > 0){
printf("non-signé\r\n");
} else {
printf("signé\r\n");
}
printf("\t\tushort: %ld\r\n", sizeof(unsigned short));
printf("\t\tsshort: %ld\r\n", sizeof(signed short));
// ****************
printf("\t\tint: %ld => ", sizeof(int));
intTmp = 0; intTmp--;
if (intTmp > 0){
printf("non-signé\r\n");
} else {
printf("signé\r\n");
}
printf("\t\tuint: %ld\r\n", sizeof(unsigned int));
printf("\t\tsint: %ld\r\n", sizeof(signed int));
// ****************
printf("\t\tlong: %ld => ", sizeof(long));
longTmp = 0; longTmp--;
if (longTmp > 0){
printf("non-signé\r\n");
} else {
printf("signé\r\n");
}
printf("\t\tulong: %ld\r\n", sizeof(unsigned long));
printf("\t\tslong: %ld\r\n", sizeof(signed long));
// ****************
printf("\t\tlonglong: %ld => ", sizeof(long long));
longlongTmp = 0; longlongTmp--;
if (longlongTmp > 0){
printf("non-signé\r\n");
} else {
printf("signé\r\n");
}
printf("\t\tulonglong: %ld\r\n", sizeof(unsigned long long));
printf("\t\tslonglong: %ld\r\n", sizeof(signed long long));
// ****************
// type d'encodage
scharTmp = 1;
scharTmp = ~scharTmp;
scharTmp += 1;
printf("\t- Encodage du signe: ");
if (scharTmp == -1){
printf("complément A2\r\n"); // 1 => 000000001 = inv => 11111110 = +1 => 11111111
} else {
scharTmp = 1;
scharTmp = ~scharTmp;
if (scharTmp == -1){
printf("complément A1\r\n"); // 1 => 000000001 = inv => 11111110
} else {
printf("signe + valeur\r\n"); // 1 => 000000001 = ajout signe => 100000001
}
}
// ****************
// Endianness
printf("\t- Endianness: ");
longlongTmp = 1;
ptUCharTmp = (unsigned char*)&longlongTmp;
if (*ptUCharTmp != 0u){
printf("Little endian\r\n");
} else {
printf("Big endian\r\n");
}
printf("\r\n");
} |