【发布时间】:2013-11-07 02:10:16
【问题描述】:
我的实际问题是,当您真正知道这些值是相同类型时,是否真的可以比较两个 void 指针中包含的 值?例如 int。
void compVoids(void *firstVal, void *secondVal){
if (firstVal < secondVal){
cout << "This will not make any sense as this will compare addresses, not values" << endl;
}
}
实际上我需要比较两个 void 指针值,而在函数外部已知类型是 int。我不想在函数内部使用 int 的比较。
所以这对我也不起作用:if (*(int*)firstVal > *(int*)secondVal)
有什么建议么?
非常感谢您的帮助!
【问题讨论】:
-
这听起来像是 XY 问题。您为什么要比较 void 而不是实际类型?你想做什么?
-
我已经在下面回答了这个问题。
-
你的问题毫无意义。您在问题的开头说,比较地址而不是值是没有意义的(新闻快讯。指针值是地址)。 下一句你说“我需要比较两个 void 指针值”。所以选一个。是在您要比较的那些地址的地址还是值?
-
二叉树注释?如果是这样,模板就是你真正需要的......而不是空指针。
-
这两个值的类型相同:
void*。如果您需要知道指针所指事物的实际类型,请不要使用void*。丢弃后,您将无法恢复该类型信息。