小编Imb*_*dir的帖子

GCC可以编译类作为结构吗?

有没有办法强制编译器(特别是GCC)使类编译到面向对象的C?具体来说,我想要实现的是写这个:

class Foo {
public:
  float x, y, z;
  float bar();
  int other();
  ...etc
};

Foo f;
float result = f.bar()
int obSize = sizeof(Foo);
Run Code Online (Sandbox Code Playgroud)

然而编译完全相同:

Struct Foo { float x, y, z; };
float Foo_bar(Foo *this);

Foo f;
float result = Foo_bar(&f);
int obSize = sizeof(Foo);
Run Code Online (Sandbox Code Playgroud)

我的动机是提高可读性,但不会对Foo的每个对象造成内存损失.我想通常obSize的类实现

obSize = sizeof(float)*3 + sizeof(void*)*number_of_class_methods
Run Code Online (Sandbox Code Playgroud)

主要是在内存受限微控制器中使用c ++类.但是,我想如果我把它用于工作,我也会将它用于网络序列化(当然在相同的端机上).

c++ struct class

-1
推荐指数
1
解决办法
284
查看次数

标签 统计

c++ ×1

class ×1

struct ×1