繁体   English   中英

将函数的返回值强制转换为指针类型

[英]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*)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM