【发布时间】:2016-01-27 07:48:41
【问题描述】:
我得到了一个任务,我看不到函数的详细功能,但我只知道 id 一般做什么。
所以我有一个函数,我们称之为“get_button”,在文档中我知道“它返回一个指向按钮结构的指针”。我知道按钮结构,它类似于:
struct button{
int size;
char title;
short keyID;
};
函数类似于:
void * get_button(int ID, int group)
但我不知道它是做什么的。
现在我想知道标题,但是在使用编译器时我得到了一个 void 指针作为回报。那么我应该如何使用这个 void 指针呢? ASAIK 我必须使用 static_cast 来引用它,但在这种情况下是一个结构;此外,我无法真正理解强制转换的含义以及如何让编译器知道我想要某个结构。
这是一个特殊情况,我需要知道如何将参数从 void 指针获取到结构中。我不知道我是否应该使用 static_cast 或其他什么(所以我无法理解对它的引用)。在这种情况下,我也不需要知道如何使用 void 指针!我只需要知道如何访问结构中的属性。 我在这里和那里看到了其他答案,但我找不到对这个案例有价值的东西。
【问题讨论】:
-
空指针只是一个指针,它没有指定它所指向的类型。如果您确定它实际上指向某个结构,则可以将其转换为指向该结构的指针(使用
static_cast或普通的 C 样式转换),然后正常使用它。但是,如果您使用的库为您提供 void 指针,那么它可能是故意为您提供“不透明句柄”,您应该将其传递给相关的库函数以实际使用它。有关您正在使用的库和/或上下文的更多详细信息可以帮助我们提供相关建议 -
我只知道函数调用,但我不知道函数指令。我被告知“它返回一个指向结构的指针”,而不是其他东西。我正在使用以前用 C 编程但最近才用 c++ 编程的嵌入式机器。我只知道按钮结构,定义在一个 key.h 库(包含在 ofc 程序中)中,类似于我写的东西。我没有更多信息。