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)

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top