我有以下代码:
#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中没有显示任何内容。无法说清楚原因。对我想到的指针正确完成了类型转换。还有其他问题吗?
答案 0 :(得分:1)
原始代码已经很好了。为什么你试图把它变成一个不可读的单行,我不知道。你不会获得性能,你什么都不会做,你只会模糊代码。正如我们可以从需要提出这个问题中看到的那样:你甚至让自己的代码变得难以理解。只需保留代码即可。
实际的错误来自您添加的(unsigned char*)
的奇怪演员。