我有一个我初始化的结构,如下所示:
typedef struct
{
 word w;
 long v;
}
MyStruct;
MyStruct sx = {0,0};
Update(sx);
现在,首先声明它然后传递它似乎是一种浪费.我知道在C#中,有一种方法可以在一行中完成所有工作.是否有可能以更聪明(读取:更清洁)的方式将其传递给我的更新功能?
在C++中,结构与类相同,但在结构中默认情况下一切都是公共的.所以你可以给一个struct一个构造函数,例如
struct MyStruct
{
 word w;
 long v;
 MyStruct(word w, long v) : w(w), v(v) {}
};
Update(MyStruct(0,0));
此外,C语言结构类型定义是不必要的,并且在C++中是不鼓励的.
这取决于你Update的声明方式.如果它需要MyStruct类型的值或类型的引用const MyStruct&,您可以这样做
Update(MyStruct());
这是可能的,因为您希望用零初始化对象(()在这种情况下初始化程序将执行此操作).如果需要不同的(非零)初始化值,则必须提供构造函数,MyStruct或者按照问题的方式执行(至少在当前版本的C++语言中).
| 归档时间: | 
 | 
| 查看次数: | 219 次 | 
| 最近记录: |