У меня есть функция, определенная как:
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);
, но он не работает (дает мне ошибку ошибки сегментации).Есть идеи, как мне это сделать?