gcc - une question d'entretien classique sur le langage C sous Linux
巴扎黑
巴扎黑 2017-06-26 10:59:11
0
2
1010

Si vous utilisez le compilateur GCC pour exécuter le programme suivant sous Linux, quel est le résultat ?

#include<stdio.h>
int main(){
    int a=5;
    printf("%d %d %d",a++,a++,++a);
    return 0;
}

La réponse est la suivante :

In LINUX GCC compiler
7 6 8
In TURBO C
7 6 6

Je peux comprendre les 7 6 6的答案,但我实在无法理解为什么LINUX GCC compiler的输出是7 6 8。虽说知道这属于undefiend behavior,但还是想知道为什么有7 6 8 résultats.
Source de la question originale : Plusieurs questions d'entretien classiques en langage C sous Linux

巴扎黑
巴扎黑

répondre à tous(2)
学习ing

http://blog.csdn.net/laojiu_/...

習慣沉默

En fait, c'est parce qu'il s'agit d'un comportement indéfini qui n'est pas dans la spécification, donc le compilateur est correct quelle que soit la façon dont il le calcule, et il est correct même si les résultats obtenus par le compilateur ne sont pas uniformes.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal