大佬教程收集整理的这篇文章主要介绍了为什么空的声明适用于具有int参数的定义,但不适用于float参数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么这样做:
int fuc(); int fuc(int i) { printf("%d",i); return 0; }
但是编译失败:
int fuc(); int fuc(float f) { printf("%f",f); return 0; }
带有消息:
int f();
…告诉编译器一些标识符(f,在这种情况下)命名一个函数,并告诉它函数的返回类型 – 但不指定函数的参数的数量或类型(s)打算收到.
原型:
int f(int,char);
否则相似,但也指定函数打算接收的参数的数量/类型.如果不需要参数,你可以使用类似于int f(void)的内容来指定(因为将括号留空是一个声明).新式功能定义:
int f(int a,char b) { // do stuff here... }
…也作为一个原型.
没有范围内的原型,编译器在调用函数之前将默认提升应用于参数.这意味着任何char或short它被提升为int,并且任何float被提升为double.因此,如果你声明(而不是原型)一个函数,你不想指定任何char,short或者float参数 – 调用这样的东西会/将给出未定义的行为.使用默认标志,编译器可能会拒绝代码,因为基本上没有办法正确使用它.你可能可以找到一些编译器标志,让它接受代码,但它是相当毫无意义的,因为你无法使用它…
以上是大佬教程为你收集整理的为什么空的声明适用于具有int参数的定义,但不适用于float参数?全部内容,希望文章能够帮你解决为什么空的声明适用于具有int参数的定义,但不适用于float参数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。