将函数的 return 值类型转换为指针类型

Typecasting return value of function to pointer type

我有以下代码:

#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*) 的奇怪转换。