1

次のC代入ステートメントがあるとします。

c = d * 120;

の拘束時間は何ですか:

a。変数cのタイプ?

b。変数を書くための慣習的なルール?

c。変数cのアドレス?

d。演算子の意味*?

e。演算子*の2つのオペランドがロードされる順序は?

言語設計時間、言語実装時間、コンパイル時間、ロード時間、リンク時間、実行時間の6つの可能なバインド時間があることを私は知っています。

上記の質問に対する私の答え:

a。コンパイル時間

b。言語設計時間

c。読み込み時間

d。コンパイル時間

e。言語設計時間

私の答えの正しさを確認していただけませんか?ありがとうございました :) 。

4

1 に答える 1

4

A. コンパイル時間。

B.「変数を書くための規約」とは?この場合の「慣習」とは何を意味するのでしょうか?

C. 特定の回答に不十分な情報。最新のプラットフォームでは、変数の「アドレス」は、プロセスの [仮想] アドレス空間内の位置によって決まります。グローバル/静的変数の場合、コンパイル時またはリンク時 (質問の解釈方法に応じて) および変数のリンケージで決定されます。自動変数の場合、絶対アドレスは実行時に決定されますが、スタック フレーム内の相対アドレスはコンパイル時に認識されます。変数に関する具体的な情報(グローバル?ローカル?)を提供していないため、質問に答える方法はありません。

D. ここでの「演算子の意味」が実際に何を意味するかに応じて、コンパイル時または言語設計時。算術演算子の数学的な意味は、言語設計によって決まります。オーバーロードされた演算子 ( int * intvsdouble * doubleなど) の特定のバージョンは、コンパイル時に選択されます。

E. この質問は、見た目よりも漠然としています。コード内で命令をロードする順序は、コンパイル時に決定されます。ただし、実際の物理的な負荷は、実行時に最新のプロセッサによって再配置できます。「ロード順序」という質問の意味は何ですか? リスト内のロード命令の順序またはデータ転送の物理的な実行時の動作の順序?

于 2012-10-23T17:45:51.573 に答える