Bonjour à tous,
J'ai peu (pas) d'expérience en C, et je dois compiler une librairie sous Linux 64 bits avec sunstudio (compilateur cc).
Or lorsque je compile j'obtiens une bordée d'insultes dont voici la première partie (le reste est du même accabi):
Voici le début du code jusqu'au bloc incriminé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Compilation de truc.c cc -c truc.c "truc.c", line 4: syntax error before or at: ( "truc.c", line 4: warning: old-style declaration or incorrect type for: int16 "truc.c", line 4: warning: old-style declaration or incorrect type for: shift_value "truc.c", line 14: warning: old-style declaration or incorrect type for: tmp_in_value "truc.c", line 22: warning: old-style declaration or incorrect type for: out_value "truc.c", line 23: syntax error before or at: } "truc.c", line 25: warning: old-style declaration or incorrect type for: int16 "truc.c", line 25: identifier redefined: int16 current : function() returning int previous: function() returning int : "truc.c", line 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include "truc.h" /* Define Arithmetic Shifts */ int16 ashiftl16(int32 in_value,int16 shift_value) { int16 out_value; int32 tmp_in_value; tmp_in_value = (1 << (15 - shift_value)) - 1; if ( in_value > tmp_in_value ) { out_value = ADI_MAX16; /* Overflow */ } else if ( in_value <= -tmp_in_value ) { out_value = ADI_MIN16; /* Underflow */ } else { out_value = in_value << shift_value; } return( out_value ); } /* ashiftl16() */ int16 ashiftr16(int32 in_value,int16 shift_value)
et voici le contenu de truc.h:
J'ai pensé à un moment ajouter l'include inttypes.h mais ça n'aide pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #ifndef _TRUCBIDULE_Logic_ #define _TRUCBIDULE_Logic_ /* Define Arithmetic Shifts */ #define ashiftl16(in_value,shift_value) ((in_value) << (shift_value)) #define ashiftr16(in_value,shift_value) ((in_value) >> (shift_value)) #define ashiftl32(in_value,shift_value) ((in_value) << (shift_value)) #define ashiftr32(in_value,shift_value) ((in_value) >> (shift_value)) #define ashiftl64(in_value,shift_value) ((in_value) << (shift_value)) #define ashiftr64(in_value,shift_value) ((in_value) >> (shift_value)) /* Define Logical Shifts */ #define lshiftl16(in_value,shift_value) ((in_value) << (shift_value)) #define lshiftr16(in_value,shift_value) ((in_value) >> (shift_value)) #define lshiftl32(in_value,shift_value) ((in_value) << (shift_value)) #define lshiftr32(in_value,shift_value) ((in_value) >> (shift_value)) /* Define Bit Manipulations */ #define bitget16(in_word,bit_num) ( ((in_word) >> (bit_num)) & 0x1 ) #define bitget32(in_word,bit_num) ( ((in_word) >> (bit_num)) & 0x1 ) #define bitset16(value,bit_num,in_word) \ ( (value) ? \ ((in_word) | (0x1 << (bit_num))) : \ ((in_word) & ~(0x1 << (bit_num))) ) #define bitset32(value,bit_num,in_word) \ ( (value) ? \ ((in_word) | (0x1 << (bit_num))) : \ ((in_word) & ~(0x1 << (bit_num))) ) #endif![]()
Partager