可以检查函数的返回类型吗?

时间:2014-04-16 19:09:49

标签: c types void-pointers

假设我有一个功能......

void * getValue(...);

有没有办法检查对getValue(...)的调用的返回类型?

我计划在程序中使用void *方法,例如getValue(),程序的进程将取决于getValue()的返回类型。

是否可以检查退货类型?

3 个答案:

答案 0 :(得分:3)

您可能希望返回结构

enum valuetype {PCHAR, PSHORT, PINT, PLONG, PLLONG, PFLOAT, PDOUBLE, PLDOUBLE};
struct sometype {
    enum valuetype vt;
    void *value;
}
struct sometype getValue(...);

答案 1 :(得分:2)

我担心你无法确切地知道存储在(void *)指针中的内容。如果您需要我的建议,请更改您的代码并使用正确的类型指针

答案 2 :(得分:2)

否 - C不会使用其类型标记值,因此信息不可用。

可能的替代方法包括向函数添加out参数以指示类型,或者使用包含值和指示其类型的枚举的变量结构。