我写了一个简单的程序,应该添加1和53,然后返回54.但是它显然没有做任何事情。没错,什么都没有。
该文件保存为firstEx.c
,我编译并运行如下
$ gcc -o firstEx firstEx.c
$ ./firstEx
一切顺利,但我看不到输出。 有人可以帮忙吗? (我对C来说是全新的。)
以下是代码:
#include <stdio.h>
int main()
{
int var1, var2;
var1 = 1;
var2 = 53;
void add_two_numbers (int var1, int var2);
return 0;
}
void add_two_numbers (int a, int b)
{
int c;
c = a + b;
printf ("%d\n", c);
}
答案 0 :(得分:11)
该行
void add_two_numbers (int var1, int var2);
是一个函数原型,不是对所述函数的调用。它是不寻常在功能中间看到它但它确实有效,因为它只是一种符合标准的声明风格({{1 }})。
要实际调用该功能,您必须使用以下内容:
ISO C11 6.7
当你调用它时,你还应该确保函数原型在范围内,既可以预先提供原型,也可以在调用之前简单地定义函数。我从以下内容开始:
add_two_numbers (var1, var2);
如果你想保持功能的顺序相同,原型方法可以按如下方式进行:
#include <stdio.h>
void add_two_numbers (int a, int b) {
int c;
c = a + b;
printf ("%d\n", c);
}
int main (void) {
int var1, var2;
var1 = 1;
var2 = 53;
add_two_numbers (var1, var2);
return 0;
}
其他一些事情只是为了让你思考:
#include <stdio.h>
void add_two_numbers (int, int);
int main (void) {
int var1, var2;
var1 = 1;
var2 = 53;
add_two_numbers (var1, var2);
return 0;
}
void add_two_numbers (int a, int b) {
int c;
c = a + b;
printf ("%d\n", c);
}
的函数添加数字而返回结果,而不是打印出总和。或许更好的名字可能是add_two_numbers
。print_sum_of_two_numbers
函数可以缩小到单行add_two_numbers
printf ("%d", a + b);
的前四行可以缩减为main
。add_two_numbers (1, 53);
显式返回零,它将自动返回零&#34;自动&#34;如果你退出底部。有些人可能仍然喜欢明确,有很多像我这样的老人会因为习惯而把它放进去,但不再需要了。通过所有这些变化,你可以得到更简洁的结论:
main