Bonjour tous le monde
peut-on trouver un if sans then ?!!
j'ai trouvé cet exemple
et c'est un code compilé ?!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (len <= 0) return 0;
Bonjour tous le monde
peut-on trouver un if sans then ?!!
j'ai trouvé cet exemple
et c'est un code compilé ?!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (len <= 0) return 0;
non ça c'est du C Like (genre PHP, Javascript, C, C++ ou LUA)
en Delphi la syntaxe c'est :
ce qui correspond au C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if {condition} then {instruction ou bloc de code} else {instruction ou bloc de code}
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (/*condition*/) /* instruction ou bloc de code*/ else /* instruction ou bloc de code*/
donc pour :
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (len <= 0) return 0;
on aura le code Pascal/Delphi :
et le code Delphi 2009 +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if len <= 0 then begin result := 0; exit; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if len <= 0 then exit(0);
donc on peut inclure un code c dans un programme Delphi (comme assembleur) ?!!
d'ailleur j'ai trouvé un exemple, ou on a un mélange entre le C et Delphi
et un autre
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 {$ifdef HAS_snprintf} snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); {$else} sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); {$endif} len := strlen(buf); { old sprintf doesn't return the nb of bytes written } if (len <= 0) return 0; gzprintf := gzwrite(file, buf, len); end; {$ENDIF}
c'est possible ?
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 {$ifndef ORG_DEBUG} { Inline versions of _tr_tally for speed: } #if defined(GEN_TREES_H) || !defined(STDC) extern uch _length_code[]; extern uch _dist_code[]; #else extern const uch _length_code[]; extern const uch _dist_code[]; #endif macro _tr_tally_lit(s, c, flush) var cc : uch; begin cc := (c); s^.d_buf[s^.last_lit] := 0; s^.l_buf[s^.last_lit] := cc; Inc(s^.last_lit); Inc(s^.dyn_ltree[cc].fc.Freq); flush := (s^.last_lit = s^.lit_bufsize-1); end; macro _tr_tally_dist(s, distance, length, flush) \ var len : uch; dist : ush; begin len := (length); dist := (distance); s^.d_buf[s^.last_lit] := dist; s^.l_buf[s^.last_lit] = len; Inc(s^.last_lit); Dec(dist); Inc(s^.dyn_ltree[_length_code[len]+LITERALS+1].fc.Freq); Inc(s^.dyn_dtree[d_code(dist)].Freq); flush := (s^.last_lit = s^.lit_bufsize-1); end; {$endif}
pour l'assembleur et dans mon parser j'ingore toute la partie qui commence par ASM et termine par END
mais pour le C je vois pas ou il peut se trouver, entre les directives {$ifdef} et {$endif} ou bien la directive {$ifndef} ? et es-ce qu'il existe d'autre cas possible ?
Cordialement
il existe deux IDE par borland :
Delphi (BDS) et CBuilder (BCB).
on peux trouver du code de BDS et BCB dans les mêmes unité, entouré des directives :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 {$IFDEF BCB} 'code C' {$ELSE} {$IFDEF BDS} 'code Delphi' {$ELSE} {$IFDEF FPC} 'code Free pascal' {$ENDIF} {$ENDIF} {$ENDIF}
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager