【发布时间】:2020-10-03 01:31:08
【问题描述】:
在下面的代码中,我使用main() 外部的函数计算PI。两者的唯一区别是:
-
第一个代码。我没有传递任何参数:
void calculate_pi (); -
第二个代码。我明确表示没有要传递的参数:
calculate_pi (void);。
我原以为第二个更好,但似乎并非如此。为什么是这样?谢谢!
第一个代码:
#include <stdio.h>
#include <stdlib.h>
void calculate_pi ();
int main(void)
{
calculate_pi ();
return 0;
}
void calculate_pi ()
{
int i, signo;
double pi_approx = 1, pi_final;
for (i = 1; i < 1000000; ++i)
{
signo = (i%2) ? -1 : 1;
pi_approx = pi_approx + (float) signo / (2*i+1);
}
pi_final = pi_approx * 4;
printf("%.10f\n", pi_final);
}
第二个代码:
#include <stdio.h>
#include <stdlib.h>
void calculate_pi (void);
int main(void)
{
calculate_pi (void);
return 0;
}
void calculate_pi (void)
{
int i, signo;
double pi_approx = 1, pi_final;
for (i = 1; i < 1000000; ++i)
{
signo = (i%2) ? -1 : 1;
pi_approx = pi_approx + (float) signo / (2*i+1);
}
pi_final = pi_approx * 4;
printf("%.10f\n", pi_final);
}
【问题讨论】:
-
the second one is better第二个编译和工作?I am explicitly saying there are no arguments to pass不,你不是,void并不意味着在函数调用中。这意味着在 函数声明. -
感谢您的快速回答@KamilCuk 我根据您的评论在正确的代码下方添加了!谢谢!
标签: c function arguments parameter-passing void