c++ - 在 C++ 中为 parcelable 选择数据

标签 c++

在我之前用 C 编写的程序中,我需要一个包含多个“核心”数据的对象,我的程序中的所有函数都可以访问这些数据,我最终选择了一个结构我已经使用指向该结构的指针来读取或写入数据;它速度快,适合工作,而且成本低廉,因为访问指针可能是您可以在 C 中做的最便宜的事情之一,而且我从来没有找到更好的东西,所以我对这个解决方案很满意。

现在在 C++ 中我遇到了同样的问题,我需要共享一个由一些原始类型组成的状态,我很想使用所谓的 POD 之一,它基本上意味着 struct,再次,但这次是出于安全考虑。

假设我需要在我的程序中携带这个“Blob”数据,通过引用访问的结构是 C++ 中最快的东西吗? getter 方法的成本是多少?

最佳答案

如果您的 getter 代码是内联的(在头文件中),那么编译器可以消除在它输出的机器代码中调用函数的需要。

例如:

class Data
{
private:
  int number_;
public:
  int GetNumber() { return number_; }
};

编译器将看到 GetNumber 的定义,知道它的作用很简单,并且知道您在何处调用了 GetNumber(),它会简单地将其替换为 number_。因此,使用 getter 与直接访问成员将产生等效的代码,并且两者执行相同的操作。

关于c++ - 在 C++ 中为 parcelable 选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759653/

相关文章:

c++ - Cin 没有得到正确的输入

c++ - 在 C++ 中重新定义与覆盖

c++ - 难以从 CImageList 设置菜单项位图

c++ - Qt - QPushButton 文本格式

c++ - C++ 中字符串类型的枚举类

C++ cin 仅限正整数

c++ - 对数据类型使用 #define 和 typedef 是一个好的做法吗?

c++ - 通过指针算法计算数组长度

c++ - 为什么 ADL 不能使用 std::get 解析为正确的函数

c++ - 多个if方法的构造约定