作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 C,因为我有一本书,尽管它和我一样老。我正在使用turboc++,当我返回0时它就可以工作;在函数结束时,但我相信这并不总是必要的。我正在做函数练习。outfloat 会给我重新声明 outfloat 时类型不匹配,但其他的可以工作。我做错了什么?
#include "stdio.h"
main()
{
outchar('A');
outnum(2);
outfloat(3.3);
return 0;
}
outchar(char ch)
{
printf("%c",ch);
return 0;
}
outnum(int x)
{
printf("%d",x);
return 0;
}
outfloat(float z)
{
printf("%f",z);
return 0;
}
最佳答案
由于您没有为所使用的任何函数提供原型(prototype),编译器假定它们的参数(和返回类型)为 int
。
对于前两个函数,假设“有效”。
对于最后一个函数,假设失败,因为 float
类型的参数与(假设的)类型 int
不兼容。
最好的选择是始终为您使用的函数提供原型(prototype)。在简单的代码中,您可以使用函数定义也充当原型(prototype)的事实,并将定义移至 main()
之前。
#include <stdio.h>
/* prototypes */
int outchar(char ch);
int outnum(int x);
int outfloat(float z);
int main(void)
{
outchar('A');
outnum(2);
outfloat(3.3);
return 0;
}
int outchar(char ch)
{
printf("%c",ch);
return 0;
}
int outnum(int x)
{
printf("%d",x);
return 0;
}
int outfloat(float z)
{
printf("%f",z);
return 0;
}
关于c - ‘outchar’, 'outint',但不是 'outfloat',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44221317/
我正在学习 C,因为我有一本书,尽管它和我一样老。我正在使用turboc++,当我返回0时它就可以工作;在函数结束时,但我相信这并不总是必要的。我正在做函数练习。outfloat 会给我重新声明 ou
我是一名优秀的程序员,十分优秀!