考虑下面的代码:return;这个声明返回什么?
#include <stdio.h>
int main()
{
int a ;
a = message() ;
printf("--%d",a);
}
message()
{
printf("--%d",printf ("\nViruses are written in C"));
return ;
}
我得到输出:(海合会)
病毒是写在C - 25--4
我的解释:return ;
语句返回累加器中的值,最新的printf
返回的值存储在累加器中... 这是正确与否?
你的解释是错误的。在C中没有“累加器”,标准也不允许空的“返回”返回任何有用的东西。编译错误将显示它是无效的代码,并且您得到的效果是未定义行为。 – usr2564301
@Jongware:用“Intel 32位”上的''eax'替换为“累加器”,并添加关于未定义行为的警告,对于OP所使用的编译器来说,解释是非常正确的。 – RichieHindle
@RichieHindle:既不是'eax'也不是'Intel'是C标准的一部分(*它们中的任何*,因为有一对夫妇)。 – usr2564301