gpt4 book ai didi

objective-c - “Ordered comparison of function pointers” 警告是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:15:24 24 4
gpt4 key购买 nike

我收到了这个编译器警告:

Ordered comparison of function pointers ('IMP' (aka 'id(*)(id,SEL,...)')and "IMP")

当我尝试比较两个实体时:

for (i = 0; k < 30; k++) {
IMP imp = getValue(class_method[i]);
if (imp <= (IMP)currDesc->address) {//this is the line causing the warning
size_t diff = (size_t)classMap->address - (size_t)imp;
if (diff < mediumSize) {
best_method = class_method[i];
is_class_method = YES;
mediumSize = diff;
}
}

能否请您解释一下此警告的最终原因以及解决方法。

最佳答案

在直接回答问题时,当您尝试比较两个函数指针的地址时,会生成函数指针警告的有序比较。在大多数情况下,这种比较是错误的,因为比较两个函数在内存中的位置没有什么值(value)。

这里可能是也可能不是这种情况,但是如果您需要直接比较函数指针,您将需要显式关闭警告(我找不到这个的编译器选项,如果有是一个)或将两个指针转换为支持比较的值,例如 void*。

关于objective-c - “Ordered comparison of function pointers” 警告是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10893859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com