编译时出现“void value not ignored as it ought to be”错误,原因是因为,一个函数的返回值为void,但是你又把这个函数的返回值赋值给了一个具体类型的变量。

例:代码如下

#include <linux/init.h>
#include <linux/module.h>

struct globalfifo_dev {
	unsigned int current_len;
};

static void globalfifo_setup_cdev(struct globalfifo_dev *dev, int index)
{
    return;
}

static int __init globalfifo_init(void)
{
    int ret = 0;
    struct globalfifo_dev *globalfifo_devp = NULL;
    ret = globalfifo_setup_cdev(globalfifo_devp, 0);

	return 0;

}
module_init(globalfifo_init);

static void __exit globalfifo_exit(void)
{
}
module_exit(globalfifo_exit);


编译报错如下:

原因是:函数globalfifo_setup_cdev返回值为void型,但是我却把他赋值给int型的变量ret。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐