這是我想了解的程序的一小部分,但由於指針而無法理解。有人可以向我解釋這段代碼嗎?
/* 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_target是真實的。然後,json_result也是如此,但是如果語句放在函數的末尾。我只是不明白json_result如何被使用。 或者,即使在執行上面的任何代碼之前,指針是否會通過?
基本上,該指針放置在函數的末尾會有什麼用處?
這是否「if語句」以任何方式上面的代碼影響它? – dikidera 2011-05-23 22:20:27
@dikidera - 除非有一個循環,控制返回,否。在你的代碼中,似乎沒有循環,所以它不會影響它上面的代碼。 – littleadv 2011-05-23 22:21:35