このコードを C++ で実行します。
#include <iostream>
using namespace std;
int main()
{
float f = 7.0;
short s = *(short *)&f;
cout << sizeof(float) << endl
<< sizeof(short) << endl
<< s << endl;
return 0;
}
私は次のアウトポットを取得します:
4 2 0
しかし、スタンフォード大学で行われた講義で、Jerry Cain 教授は、アウト ポットが 0 ではないことは確かだと述べています。
レクチャーはここで好きになれます。彼は48分頃にそれを言います。
彼は間違っていますか、それともそれ以降の標準的な変更ですか? またはプラットフォーム間に違いはありますか?
g++ を使用してコードをコンパイルしています。
編集:次の講義で、彼は「ビッグ エンディアン」と「スモール エンディアン」について言及し、それらが結果に大きく影響すると述べています。