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

时间:2015-04-09 18:36:13

标签: c embedded

我有以下代码:

#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中没有显示任何内容。无法说清楚原因。对我想到的指针正确完成了类型转换。还有其他问题吗?

1 个答案:

答案 0 :(得分:1)

原始代码已经很好了。为什么你试图把它变成一个不可读的单行,我不知道。你不会获得性能,你什么都不会做,你只会模糊代码。正如我们可以从需要提出这个问题中看到的那样:你甚至让自己的代码变得难以理解。只需保留代码即可。

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