我的 Int2String 方法有问题。我是 C 的新手,所以我不确定这是否是正确的方法。我收到了一些错误消息:
错误:“int2String”的类型冲突 警告:返回从指针生成整数而不进行强制转换
这是我的方法:
char int2String(int num, char intStr[10]) {
char itoa(num, intStr[10]);
return itoa;
}
感谢您的帮助!
最佳答案
在你的代码中
char itoa(num, intStr[10]);
return itoa;
告诉编译器您声明一个名为itoa
的函数,具有特定的签名,然后您想要返回(指向)这个函数 .由于您将返回类型声明为 char
,编译器不喜欢这样。
它应该看起来像
char int2String(int num, char intStr[10]) {
char ch = itoa(num, intStr);
return ch;
}
即调用函数itoa
使用给定的参数,将其返回值存储在 char
类型的局部变量中,然后返回它。 (可以内联局部变量以简化代码。)
现在这仍然不能使编译器满意,因为 itoa
虽然不是标准的一部分,但按照惯例声明返回 char*
,并取 3参数,而不是 2。(除非您使用非标准定义 if itoa
,即。)
对于“标准”itoa
版本,此修改应该有效(至少在理论上 - 我没有测试过:-)
char* int2String(int num, char intStr[10]) {
return itoa(num, intStr, 10);
}
关于C 编程帮助 Int2String 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3696178/