59章 セミコロン2個

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Ma

59章 セミコロン2個

#1

投稿記事 by Ma » 16年前

以前Mだった者ですが、名前が重なっていたため Ma と改名させていただきました。

Ob->ObChild.z = Ob->ToZ - Ob->Zhaba + Ob->Zhaba * s;;

今読んでいたところ、エラーは起きませんし些細なことですが
セミコロンが二つ並んでいましたので報告しておきます。

朽木

Re:59章 セミコロン2個

#2

投稿記事 by 朽木 » 16年前

私も同じ経験があります。

コンパイラのソースを見たわけでは無いんですが、

いろんなサイトを調べてみると、コンパイラは';'までを1つの命令(?)と解釈するそうです。

というわけで、私が考えるに、例えば "a = a + b;;" は "a = a + b;" と ";" に分けられて、

コンパイラは次の様に見るんだと思います。多分。

/* "a = a + b;" の部分 */
'=' と '+' を見つける。

'+'の方が優先度が高いので a + b を吐く

次に a = 直前の結果 を吐く

おわり

/* ";" の部分 */
演算子や命令を探すが見つからない

おわり



あとから見て気づいたんですが、

これ、質問じゃなかったんですね・・・@@;;

御津凪

Re:59章 セミコロン2個

#3

投稿記事 by 御津凪 » 16年前

微妙に話がずれますが、朽木さんと同等の理由で、仮にセミコロンが、
x = 0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
と、沢山並んでもエラーではありません。
(中には警告やエラーと見なすものもあると思いますが)

ちなみに、
0;
と書いてもエラーにはなりません。
(こちらも警告やエラーと見なすものもあると思います)

豆知識としてどうぞ。

SCI

Re:59章 セミコロン2個

#4

投稿記事 by SCI » 16年前

;_:;
こんなのもエラーになりませんね。これもコンパイラによって警告等出るかも知れませんが。

Dixq (管理人)

Re:59章 セミコロン2個

#5

投稿記事 by Dixq (管理人) » 16年前

ご報告ありがとうございます。
修正しておきますね。

>>SCIさん

泣いてる顔文字みたいに見えますねw

閉鎖

“C言語何でも質問掲示板” へ戻る