C++自定义函数声明报unknown type name错误问题求助
错误原因
你的编译报错完全来自函数参数的语法错误,和using namespace std;的放置位置没有关联。
C++语法要求:函数参数列表中的每一个参数都必须单独显式声明类型,即便多个参数类型完全相同,也不能只给第一个参数标注类型、省略后续同类型参数的类型声明。你写的double a, b, c只会被编译器识别为a是double类型,b、c两个参数没有指定类型,因此抛出"unknown type name 'b'/'c'"错误,后续return语句调用未声明的b、c自然也会触发标识符未声明的报错。
修正后的代码
double discriminant(double a, double b, double c){ return b * b - 4 * a * c; }
额外说明
你找到的所谓"合法示例"大概率是混淆了早已淘汰的K&R C语法和现代C语法:上古时期的C89之前的K&R C支持参数类型外置声明的写法,但是这种写法在现代C标准和所有C标准中都不被兼容,属于错误的语法示例。
内容的提问来源于stack exchange,提问作者noblearistocrat
相关产品推荐
相关产品推荐

