几个星期以来,我一直在想这个问题,但找不到答案。
假设我们有以下代码:
typedef struct s_data
{
int age;
char *name;
} t_data;
int main()
{
t_data someone;
if ((foo(&someone)) != 0)
printf("blablabla");
//....
return (0);
}
int foo(t_data *someone)
{
// Get data from internal memory by example
*someone = unjson("data.json");
if (someone == null)
return (-1);
return (0);
}
因此,现在回到父级对象中,对结构进行了更新,但是如果它不是带有指针的结构,而是对象,则它如何工作?就像在C#中一样
我传递我的对象,定义
someone = unjson("....");
,该对象在子级而不是父级中更新。这对我来说很有意义,而且具有逻辑性,但是如何使它像我在C语言中为C#语言给出的示例一样工作?也许这个问题很愚蠢,也许我没有在Google上搜索正确的关键词,但是我真的想知道我该怎么做。
感谢您的解释!
最佳答案
在方法中的参数之前添加ref关键字,这将通过引用发送与对象相同的对象。
private int foo(ref myObjectType someone)
{
// Get data from internal memory by example
someone = unjson("data.json");
if (someone == null)
return (-1);
return (0);
}
更多信息:
https://msdn.microsoft.com/en-us/library/14akc2c7.aspx