考慮下面的代碼: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