foooooooaoooootranとかいうくそ言語
2012年9月13日 コンピュータ暗黙の型宣言とかいうのがまじでやばい
しかも変数と関数の表記がまったく同じ
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の引数はすべてアドレス渡し)
ちなみに普通にコンパイル通って実行できてしまうという恐ろしさ
しかも変数と関数の表記がまったく同じ
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の引数はすべてアドレス渡し)
ちなみに普通にコンパイル通って実行できてしまうという恐ろしさ
コメント