c - 为什么比较空函数指针结果为 "invalid operands to binary =="

标签 c

有人可以向我解释为什么下面的代码会出现“二进制操作数无效 ==”错误吗?

typedef int (*func_t)(int);
#define NO_FUNC ((func_t) 0)
struct {
    const char *name;
    func_t func;
} table[] = { {"func1", NO_FUNC} };

if (table[0] == NO_FUNC) { // invalid operands to binary ==

}

最佳答案

并且您应该在结构中引用正确的成员:

if (table[0].func == NO_FUNC)

关于c - 为什么比较空函数指针结果为 "invalid operands to binary ==",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869081/

相关文章:

c - 当矩阵大小变得太大时,用 OpenCL 编写的矩阵乘法内核不起作用

c - 修改控制台 C Codeblocks 中先前编写的行

c - mmap() 拥有内存块

c - 这个奎因是如何工作的?

c - POSIX:从 UDP 套接字上的 write() 返回值

c - 迭代指向 K&R 中指针数组的指针

python - 避免在 cython 中对链表进行嵌套结构重新定义

c - 链接使用不同预处理器标志或 C 标准构建的库

c - 功能参数太少。我哪里出错了是什么意思?

检查日期是否在c(数组)中的两个日期之间