暗黙の型宣言とかいうのがまじでやばい
しかも変数と関数の表記がまったく同じ


foo=hoge(a)
foo=hogehoge(a)


hogeは関数でhogehogeは配列です、ってわかるわけがないやろ!

そして何より恐ろしいのがこれ


function hoge(a)
a=2
return
end

この関数を以下でコールする


int b
hoge(1)
b=1
print *, ’b=’,b 
! bを出力する(ここコメント

こうすると恐ろしいことに

b=2

と表示される。
これは、関数hoge()が定数を格納しているリテラルプールを破壊して、本来1が定義してあるメモリを2で上書きしちゃってるのである(fortranの引数はすべてアドレス渡し)
ちなみに普通にコンパイル通って実行できてしまうという恐ろしさ

コメント

お気に入り日記の更新

最新のコメント

この日記について

日記内を検索