| Re: Point de sequencement dans un appel de function |
|
 |
|
 |
|
 |
|
 |
Group: fr.comp.lang.c · Group Profile
Author: Erwan DavidErwan David Date: Apr 28, 2008 05:47
candide écrivait :
> candide a écrit :
>
>>
>> Soit le code :
>>
>> ----------------------
>> #include
>>
>> int main(void)
>> {
>> int i = 10;
>>
>> printf("%%d %%d \n", i++,i);
>> return 0;
>> }
>> ----------------------
>>
>> qui, Ã la compilation, m'affiche ceci :
>>
>> ----------------------
>> candide@candide-desktop:~$ gcc -W -Wall -pedantic -o x test.c
>> test.c: In function «main":
>> test.c:7: attention : operation on «i" may be undefined
>> ----------------------
>>
>
> Une variante qui elle passe sans crier :
>
> ----------------------
> #include
>
> int main(void)
> {
> int i = 10;
>
> printf("%%d \n", 0*i++ + i);
> return 0;
> }
>
> ----------------------
Le fait que ça passe à la compilation ne granti pas qu'on ait un
programme correct sans undefined behaviour. Typiquement c'ets le cas ici.
--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
|