【发布时间】:2014-01-16 04:38:25
【问题描述】:
我无法理解调用方法时使用 void 的结果。下面是一个调用test() 的main()。 test() 的返回值为 void。
如果我打电话给void test()(使用void),执行似乎会停止:test() 没有打印
如果我打电话给test()(没有void),执行就可以了。
这是什么逻辑?我在想电话中的void 这个词不知何故在等待来自test() 的返回,而这永远不会出现?但这不是在test() 完成打印工作之后吗?在通话中发送void 和test() 没有处理吗?
注意:这是来自 Propeller 微控制器的 C 语言,可能逻辑与 PC 上的 C 不同。非常感谢。
#include "simpletools.h";
void testerForVoid(); //forward declare
int main(void)
{
print("Begin main");
// option 1 - no void - works
testerForVoid();
// option 2 - with void - fails
void testerForVoid();
return 0;
}
void testerForVoid()
{
print("\nBegin testForVoid");
}
【问题讨论】:
-
void testerForVoid(); -
您发布的代码无效,并且由于
void问题以外的多种原因无法编译。工作、可编译的代码是一项要求。 -
对不起,凯莉,我同意这个要求。它是我 IDE 中整个程序的复制/粘贴。它可能看起来很奇怪,因为它是用于微控制器的。也许问题是 .h 没有提供?
-
@CareyGregory - 我刚刚编译了它,我包含了可能在 simpletools.h 中的
,并将 print 更改为 printf,再次可能在包含文件中,这是一个很好的代码 sn- p -
是的,缺少 simpletools.h 文件,我们会得到一些无法编译的东西。