有没有可能编写一个C++类或结构体,使其与C结构体完全兼容?在这里的兼容性指对象的大小和变量的内存位置。我知道使用*(point*)&pnt
甚至(float*)&pnt
(在不同的情况下变量是浮点数)是不好的,但考虑到性能的原因,这确实是必要的。每秒使用常规类型转换运算符一百万次是不合理的。
以这个例子为例
Class Point {
long x,y;
Point(long x, long y) {
this->x=x;
this->y=y;
}
float Distance(Point &point) {
return ....;
}
};
C语言版本是一个POD结构体。
struct point {
long x,y;
};