Fortran77 traitement de compilation de PI = 4.D0 * DATAN (1.D0)
Question
Lorsque vous utilisez ce qui suit pour calculer PI dans fortran77 sera le compilateur ÉVALUER cette valeur ou sera l'évaluer au moment de l'exécution?
* PI = 4.D0 DATAN (1.D0)
La solution
EDIT : dépend du compilateur: voir mon EDIT ci-dessous. FIN EDIT
i seconde suggestion de Mick Sharpe qui sera évalué lors de l'exécution. juste par curiosité, je PI=4.D0*DATAN(1.D0)
avec compilateur ftn77 de Silverfrost et regarda le généré binaire. la partie pertinente ressemble à ceci:
fld1 ; push 1.D0 onto the FPU register stack
call ATAN_X
fmul dbl_404000 ; multiply by 4.D0
En effet, pas de compilateur ici intelligence.
Bien sûr, cela peut être différent avec un autre compilateur (par exemple. G77). EDIT : apparemment, avec G77 (le front-end fortran77 pour gcc), il est possible (et activé par défaut) d'utiliser gcc fonction intégrée atan PI=4.D0*DATAN(1.D0)
auto fois dans une constante. FIN EDIT
Autres conseils
Les appels à des fonctions mathématiques sont normalement évalués au moment de l'exécution. Après tout, il n'y a rien à vous arrêter d'écrire vos propres fonctions mathématiques. Ce ne serait pas possible si elles ont été évaluées au moment de la compilation.