2
  1. は演算子なのでsizeof、なぜsizeof(something);関数呼び出しのように使用できるのでしょうか?

  2. 1 バイトが 8 ビットでないのはいつですか?

このコンテキストのバイトは unsigned char と同じであり、8 ビットよりも大きい場合があります

バイトが8ビットより小さい可能性はありますか?

4

5 に答える 5

5

ほとんどの演算子と同様sizeofに、括弧を含むことができる式に適用できます。パーサーx * (b + c)が気にする限り、それは のようなものとほとんど同じです。それほど頻繁には見られませんが、次のようなことも完全に可能です。*(b + c)x + (b)

標準ではCHAR_MIN、-127 を超えてはCHAR_MAXならず、少なくとも 127 である必要があると指定されています。これを表すには少なくとも 8 ビットが必要なので、いいえ、char を 8 ビットより小さくすることはできません。

于 2013-09-02T15:47:32.823 に答える
5

sizeof は演算子なので、なぜ sizof(何か) を使用できるのでしょうか。関数呼び出しのような?

まあ、+これは「演算子」です (原文のまま!) でも、(1 + 1)and(1) + (1)と書くことができ((1) + 1)ます ... 通常の括弧/グループ化です。

バイトが8ビットでないときは?

8 ビットではないプラットフォームを使用する場合。

バイトが8ビットより小さい可能性はありますか?

適合する C 実装を目指すアーキテクチャではありません。ただし、発生する可能性があります。たとえば、初期のパンチ カード マシンの一部は 6 ビット バイトを使用していました。

于 2013-09-02T15:49:27.340 に答える
-1
  1. はい。
  2. 1 バイトが 8 ビットでないマシンを使用していることに疑いがあります。いずれにせよ、 sizeof() は型を取ります。「バイト」は型ではありません。型は「char」「short」「int」のようなものです。C では、最小の型は 1 バイトの char です。おそらく、「おそらく1バイト」と言うべきでしょう。
于 2013-09-02T15:46:20.420 に答える