事實證明,以下是與Fortran 77的違法:冪算術常量表達式
c
program main
real a
parameter(a=(10.)**(.5))
c
...
的原因是參數說明以恆定的算術表達式和指數是除了當指數爲非法整數。 (第6.1.3節和8.6節http://www.fortran.com/F77_std/rjcnf0001-sh-8.html#sh-8.6)。有人知道這個限制在新標準修訂版中是否放寬了嗎?爲什麼這首先是非法的?
無法整數指數未能評估呢? (例如10 ** 50000可能會導致溢出)。預先計算該值是一個選項,但這使得難以理解參數值的來源。讓它成爲一個普通變量是可以的,但如果我想將它包含在其他地方呢?最後,使用預處理器在固定格式設置中是危險的,因爲CPP不知道如何將行包裝成編譯器行爲,當它發現第72列未定義好的東西時。 – mgilson 2012-04-16 12:47:08