初始化c风格的结构

pin*_*ngu 2 c c++ dll struct

我有一个标题定义了c样式结构,它将通过c ++ DLL的边界传递.此头文件和DLL可能会被c ++,java和c应用程序使用.我想以某种方式初始化这些结构,允许用户指定参数的子集,其余的将被赋予默认值.

我正在考虑在标题中创建一系列初始化函数,这将引用它们将初始化的结构以及可以设置的所有成员的参数."初始化"函数将使用重载(基于传入的结构引用)来确保调用正确的函数.我还计划使用默认参数来设置默认值.我想这些功能必须是全局的.

这是一个好方法吗?还有更好的选择吗?谢谢

BЈо*_*вић 6

您可以添加一个返回默认初始化结构的函数:

struct abc
{
  int a;
  float b;
  char c;
};

abc GetDefaultAbc()
{
  const abc def = { 1,2.0,3 };
  return def;
};
Run Code Online (Sandbox Code Playgroud)