ページ 1 / 1
59章 セミコロン2個
Posted: 2009年3月11日(水) 08:42
by Ma
以前Mだった者ですが、名前が重なっていたため Ma と改名させていただきました。
Ob->ObChild.z = Ob->ToZ - Ob->Zhaba + Ob->Zhaba * s;;
今読んでいたところ、エラーは起きませんし些細なことですが
セミコロンが二つ並んでいましたので報告しておきます。
Re:59章 セミコロン2個
Posted: 2009年3月11日(水) 11:16
by 朽木
私も同じ経験があります。
コンパイラのソースを見たわけでは無いんですが、
いろんなサイトを調べてみると、コンパイラは';'までを1つの命令(?)と解釈するそうです。
というわけで、私が考えるに、例えば "a = a + b;;" は "a = a + b;" と ";" に分けられて、
コンパイラは次の様に見るんだと思います。多分。
/* "a = a + b;" の部分 */
'=' と '+' を見つける。
'+'の方が優先度が高いので a + b を吐く
次に a = 直前の結果 を吐く
おわり
/* ";" の部分 */
演算子や命令を探すが見つからない
おわり
あとから見て気づいたんですが、
これ、質問じゃなかったんですね・・・@@;;
Re:59章 セミコロン2個
Posted: 2009年3月11日(水) 11:29
by 御津凪
微妙に話がずれますが、朽木さんと同等の理由で、仮にセミコロンが、
x = 0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
と、沢山並んでもエラーではありません。
(中には警告やエラーと見なすものもあると思いますが)
ちなみに、
0;
と書いてもエラーにはなりません。
(こちらも警告やエラーと見なすものもあると思います)
豆知識としてどうぞ。
Re:59章 セミコロン2個
Posted: 2009年3月12日(木) 07:29
by SCI
;_:;
こんなのもエラーになりませんね。これもコンパイラによって警告等出るかも知れませんが。
Re:59章 セミコロン2個
Posted: 2009年3月12日(木) 08:04
by Dixq (管理人)
ご報告ありがとうございます。
修正しておきますね。
>>SCIさん
泣いてる顔文字みたいに見えますねw