c - 如何将 "unnecessary"指针传递给函数?

标签 c pointers

这个函数是通过 API 提供给我的:

void GetTime(uint8_t*, uint8_t*, uint8_t*, uint8_t*, uint8_t*, uint8_t* );

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

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

uint8_t *seconds, *dummy0, *dummy1, *dummy3, *dummy4, *dummy5;
GetTime( dummy0, dummy1, dummy3, dummy4, dummy5, seconds );

有没有更简洁的方法来解决这个问题?

最佳答案

首先,你做错了,你需要分配一个 uint8_t 并传递一个指向它的指针。

其次,您可以对所有人使用相同的假人:

uint8_t seconds, dummy;
GetTime( &dummy,&dummy,&dummy,&dummy,&dummy, &seconds );

最后,API 可以接受 NULL。这行得通吗?:

uint8_t seconds;
GetTime( NULL,NULL,NULL,NULL,NULL, &seconds );

关于c - 如何将 "unnecessary"指针传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19048488/

相关文章:

c - C语言中的运算符~

c - 使用 XOR 交换单个位

c - 将定义的变量插入数组

c - 没有 printf 核心,段被违反

C++:为指针成员赋值

c - 这段代码的输出是什么以及如何输出?

c - c中的自由字符指针

c - 将单个值分配给多个变量的正确方法

c++ - Xcode - 如何控制 macbook 的 USB 端口的电源?

c++ - uintptr_t 数据类型是什么?