C 谁能给我解释一下这段代码吗?
下面是一个我试图理解的程序的小片段,但由于指针的原因无法理解C 谁能给我解释一下这段代码吗?,c,C,下面是一个我试图理解的程序的小片段,但由于指针的原因无法理解 /* issue JSON-RPC request */ val = json_rpc_call(curl, srv.rpc_url, srv.rpc_userpass, s); if (!val) { fprintf(stderr, "submit_work json_rpc_call failed\n"); goto out; } *json_result = json_is_true(json_object_g
/* issue JSON-RPC request */
val = json_rpc_call(curl, srv.rpc_url, srv.rpc_userpass, s);
if (!val) {
fprintf(stderr, "submit_work json_rpc_call failed\n");
goto out;
}
*json_result = json_is_true(json_object_get(val, "result"));
rc = true;
sharelog(remote_host, auth_user,
srv.easy_target ? "Y" : *json_result ? "Y" : "N",
*json_result ? "Y" : "N", NULL, hexstr);
if (debugging > 1)
applog(LOG_INFO, "[%s] PROOF-OF-WORK submitted upstream. "
"Result: %s",
remote_host,
*json_result ? "TRUE" : "false");
json_decref(val);
if (*json_result)
applog(LOG_INFO, "PROOF-OF-WORK found");
/* if pool server mode, return success even if result==false */
if (srv.easy_target)
*json_result = true;
out:
return rc;
我关注的是这一部分:
/* if pool server mode, return success even if result==false */
if (srv.easy_target)
*json_result = true;
在我的例子中,srv.easy_目标是正确的。然后json_结果也将为true,但是if语句放在函数的末尾。我只是不明白json_结果会有什么用处。
或者在执行上面的任何代码之前,指针是否会传递它
基本上,放在函数末尾的指针有什么用处?
json\u result
是一个指针,可能是来自外部的参数。使用*
取消对其的引用,并将其指向的值更改为
这是提供函数结果的一种非常标准的方法。调用者传递一个指向其变量的指针,被调用者执行与此代码完全相同的操作:取消引用传递的指针并更改其指向的值,从而更改调用者的变量。
json\u result
是一个指针,可能是来自外部的参数。使用*
取消对其的引用,并将其指向的值更改为
这是提供函数结果的一种非常标准的方法。调用者传递一个指向其变量的指针,而被调用者正是这样做的:取消引用传递的指针并更改其指向的值,从而更改调用者的变量。我不能确定,因为您的代码段中没有包含函数签名,但是,如果
json\u result
是作为函数参数传入的指针,那么它将对函数的调用者有用。在C语言中,当您希望能够从一个函数返回多个值时,通常会传入指向将保存返回值的变量的指针。这可能就是我们正在做的事情
例如,标准库函数就是这样做的。指定从标准输入读取值时使用的格式字符串,然后为其提供指向变量的指针,该变量将用于存储值
int x;
char c;
float f;
scanf("%d %c %f", &x, &c, &f);
我不能确定,因为您的代码段中没有包含函数签名,但是如果
json\u result
是作为函数参数传入的指针,那么它对函数的调用方将很有用。在C语言中,当您希望能够从一个函数返回多个值时,通常会传入指向将保存返回值的变量的指针。这可能就是我们正在做的事情
例如,标准库函数就是这样做的。指定从标准输入读取值时使用的格式字符串,然后为其提供指向变量的指针,该变量将用于存储值
int x;
char c;
float f;
scanf("%d %c %f", &x, &c, &f);
“if语句”会影响上面的代码吗?@dikidera-除非有循环,控件返回,否则不会。在你的代码中似乎没有循环,所以它不会影响上面的代码。“if语句”会影响上面的代码吗?@dikidera-除非有循环,控件返回,不。在你的代码中似乎没有循环,所以它不会影响上面的代码。