C语言 函数的类型转换返回值到指针类型



我有以下代码:

#define PLL0STAT        (*((volatile unsigned short*) 0xE01FC088))
// Function Prototypes
void diaplayInRow1WithPosition(unsigned char* data, unsigned char position);
unsigned char convertLowerNibbleToASCIIValue(unsigned char data);
void func1 (void)
{
    unsigned char temp = (unsigned char) PLL0STAT; // Interested in last byte only
    temp = convertLowerNibbleToASCIIValue(temp);
    diaplayInRow1WithPosition(&temp,15);
}

而不是上面的代码,我想我会用一个步骤替换最后一行并使用以下语句

diaplayInRow1WithPosition(((unsigned char*)convertLowerNibbleToASCIIValue(temp3)),15);

但是代码可以正确编译,但LCD中不显示任何内容。无法找出原因。我认为的指针的类型转换正确完成。还有其他问题吗?

原始代码已经很好了。为什么你试图把它变成一个不可读的单行,我不知道。你不会获得性能,你不会一事无成,你只会混淆代码。正如我们从问这个问题的需要中看到的那样:你已经使你的代码甚至对你自己都不可读。只需保持代码原样即可。

实际的错误来自您添加的奇怪的(unsigned char*)

最新更新