我有一个如下所示的函数定义:
void foo(uint8_t *val, int num)
{
for(int i=0;i<num;i++)
printf("Buffer[%i]=0x%X \n",i,val[i]);
}
作为一种全局变量,我声明了一个数组:
uint8_t Buffer[4] = {0x01, 0x02, 0x03, 0x04};
所以要打印缓冲区,我执行以下操作:
int main()
{
foo(Buffer,4);
return 0;
}
这将导致以下结果:
Buffer[0]=0x1
Buffer[1]=0x2
Buffer[2]=0x3
Buffer[3]=0x4
问题在于,对于特定情况,我需要向该函数发送一个uint8_t参数来替换缓冲区,因此我实现了以下方式:
int main()
{
uint8_t READ_VAL[] = {0x01};
foo(READ_VAL,1);
return 0;
}
不管怎样,有没有一种方法可以内联完成呢?我尝试像这样做:
foo((uint8_t *)0x01,1);
但是它没有起作用(给了我段错误)。有什么方法可以做到这一点吗?