如何将"不必要的"指针传递给函数?

And*_*eas 2 c pointers

这个函数由API给我:

void GetTime(uint8_t*, uint8_t*, uint8_t*, uint8_t*, uint8_t*, uint8_t* );
Run Code Online (Sandbox Code Playgroud)

GetTime通过写入这些指针返回时间.问题是,我只需要写入其中一个指针的值.如果我可以控制,GetTime我要么检查指针是否NULL或返回结构,但我不能.

这是我目前的解决方案,忽略了伪指针:

uint8_t *seconds, *dummy0, *dummy1, *dummy3, *dummy4, *dummy5;
GetTime( dummy0, dummy1, dummy3, dummy4, dummy5, seconds );
Run Code Online (Sandbox Code Playgroud)

是否有更简洁的方法来解决这个问题,减少混乱?

Ben*_*Ben 7

首先,你做错了,你需要分配一个uint8_t并传递指针.

其次,你可以为所有人使用相同的假人:

uint8_t seconds, dummy;
GetTime( &dummy,&dummy,&dummy,&dummy,&dummy, &seconds );
Run Code Online (Sandbox Code Playgroud)

最后,API可以接受NULL.这有用吗?:

uint8_t seconds;
GetTime( NULL,NULL,NULL,NULL,NULL, &seconds );
Run Code Online (Sandbox Code Playgroud)