宿題:C言語2#
Homework 約30分 答え
SC言語の文に次のfor文を追加する.
for文の操作的意味を考えよ.
以下の書式をコピーして回答せよ.
ヒント:ジャンプ命令とジャンプ先ラベルの使い方がポイントである.while文の操作的意味を参考にすると良い.
Answer
▲▲▲ // 初期化
a ■■■ // 条件式
JPZ b // 条件式が偽になったらループ終了
●●● // ループの本文
▼▼▼ // ループ後の後処理(i++等)
JMP a // ループの頭へ強制ジャンプ
b
HLTしないように.プログラム全体の終了の意味です. Q&A#
:口頭での解説はスキップ
誤字#
LDL 4 LDC 3LDC 4 LDL 3- ポインタのスタック図のspの位置がずれている
- 一方
後置前置インクリメントの場合は, - 関数fが引数を
保持つ場合に対しては
各種感想#
- 関数呼び出し周りの大枠は想像できた
- スタックがうまく出来てる
- インクリメント演算子がない言語があることに驚いた
プログラミング言語の方が機械語よりも自由度が低いって考え方がなるほどってなった#
Good
自由度が高い・なんでもできる,は常に良いとは限らないということです.特に自由には責任が伴います.以下の話も全く同じです.
- グローバル変数を使うべきではない
- goto文はよくない
単項演算子はなぜコンパイラで振る舞いが変わるのか?#
C言語の定義の中には未定義箇所があるためです.なぜ未定義箇所があるのかは不明ですが,言語設計者が言語仕様にある程度の余地を残したかったとも言われています.