我对 C 函数的返回值有疑问。
我有一个主函数,我以这种方式调用函数“发送”;
int go_On;
go_On = send(VOTE_REQUEST, 1);
“发送”函数的组成如下:
int send(int msg, int flag) {
// inizialization of some parameters;
if (msg == VOTE_REQUEST) {
// Do some operations...
result = send(VOTE_COMMIT, 1);
}
else if (msg == VOTE_COMMIT) {
// Do some other operations...
return 10;
}
}
其中 VOTE_REQUEST 和 VOTE_COMMIT 是在文件开头声明的常量。
问题是返回值 go_On 是 1 而不是 10。我认为问题的出现是因为我在其内部调用了“发送”函数。事实上,如果我把
return 10;
行前
result = send(VOTE_COMMIT, 1);
go_On 假定正确的值是 10。调用内部的“发送”函数是问题的根源吗?如何解决它,使返回值变为 10?
感谢所有会帮助我的人。