|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码1
- #include <stdio.h>
- void add(int a, int b) {
- a + b;
- }
- int main(void) {
- int a = 5, b = 3;
- add(a, b);
- return 0;
- }
复制代码
代码2
- #include <stdio.h>
- void add(int a, int b) {
- a + b;
- }
- int main(void) {
- int a = 5, b = 3;
- printf("%d\n",add(a, b));
- return 0;
- }
复制代码
为什么代码1可以通过编译,代码2不能(不允许使用void类型)
因为你的第二段代码吧add函数的调用放在了一个需要int类型数据的位置
printf("%d\n", xxx);
因为printf的输出内容中有格式化字符%d,因此 xxx 这里需要是一个int类型的数据,这是printf函数的规则。
但是你这里却给了一个无返回值的函数调用,所以就出错了
需要给一个返回int类型的函数调用
- #include <stdio.h>
- int add(int a, int b) {
- return a + b;//函数返回一个int类型的数据
- }
- int main(void) {
- int a = 5, b = 3;
- printf("%d\n",add(a, b));//这里将add函数调用后的返回值输出
- return 0;
- }
复制代码
|
|