采用这个结构:
struct Foo
{
float m_foo;
// no other member
};
// A Foo object.
Foo f;
哪个更贵?
float result = std::sin(f.m_foo);
或者
float result = std::sin(*(reinterpret_cast<float*>(&f)));
// f can be interpreted like float in this case
我认为第二种情况更快,但我不确定,因为我不知道编译器将如何处理它。你能告诉我什么吗?