我不熟悉C语言。我正在研究它。
我有一个看起来像这样的功能。 我一直在尝试将整数数据分配给uint8_t *数据,但事实并非如此。 我有一个错误0x00与uint8_t *数据不匹配。 如何将整数(0x00)数据分配给那里?
sccb_write_reg(0x01, 0x00); //<---it makes error
void sccb_write_reg(uint16_t reg, uint8_t *data)
{
...
...
}
请您告诉我如何解决这个问题?
答案 0 :(得分:3)
对于这种特殊情况,上下文线索告诉我们调用函数中应该有data
,你应该在其中传递它的地址:
uint8_t data = 0x00;
uin16_t reg = 0x01;
sccb_write_reg(reg, &data);
请注意&
之前的&符号(data
)。这就是说,&#34;传递到data
&#34;的地址这是uint8_t *
的内容,它是一个内存地址。
答案 1 :(得分:2)
uint8_t parameter = 0x00;
sccb_write_reg(0x01, ¶meter);