Tho*_*ton 4 c compiler-errors function
我正在创建一个程序,从二进制,十进制,十六进制和八进制转换为任何一个选项.对于hex,我需要一种方法将大于9的值格式化为A,B,C,D,E,F之一.由于这将在几个函数中重复,我决定使用以下函数:
char hexRepresentation(double n){
if(n > 9){
if(n==10) return 'A';
if(n==11) return 'B';
if(n==12) return 'C';
if(n==13) return 'D';
if(n==14) return 'E';
if(n==15) return 'F';
}
return (char)n;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试编译时,我收到错误
'hexRepresentation'的冲突类型
我完全是C的新人,来自Java,并且正在抨击我应该做的最简单的事情.任何帮助将不胜感激!
小智 9
你没有得到一个声明类型的错误,因为在C中,当你不转发声明函数时,大多数编译器都假设一个返回int类型的extern函数.实际上编译器应该警告你(大多数情况下).然后,当编译器实际到达函数实现时,它会找到不同的返回类型,在本例中为char,然后抛出"冲突类型"错误.只需向前声明所有函数以避免此类错误.
关于什么是最好的方式,像下面的代码woudl产生类似的结果:
if (n > 9)
{
return('A' + (n - 10));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22741 次 |
| 最近记录: |