gpt4 book ai didi

c - 头文件 : type defaults to 'int' 中的结构定义

转载 作者:行者123 更新时间:2023-12-02 08:31:13 24 4
gpt4 key购买 nike

我在头文件 header.h 中有一个结构声明和定义:

#include <linux/slab.h>

struct hello{
int a;
char b;
};

extern struct hello *hello;

在 file1.c 中我有:

#include<header.h>

struct hello *hello;
hello=kmalloc(sizeof(struct hello), __GFP_REPEAT);
kfree(hello); //just to check later if 'hello' -
hello=NULL; //-is initialized or not.

在 file2.c 中我有:

#include<header.h>

结构变量hello用于file1.cfile2.c

但是在编译时出现错误:

file1.c:3:1 error: type defaults to 'int' in declaration of 'hello' [-Werror=implicit-int]
file1.c:4:1 error: conflicting types for 'hello'
file1.c:3:16 note: previous declaration of 'hello' was here
extern struct hello *hello;

我从来没有在头文件中使用过变量定义。在线搜索并从几个来源获得了这个。找不到问题所在。由于上述错误,在此之后还有许多其他错误。

经过编辑以包含正确的代码。

最佳答案

这是:

hello=kmalloc(sizeof(struct hello), __GFP_REPEAT);

真的是这样的文件级范围吗?在 C 语言的函数之外不能有这样的代码,但我希望得到不同的错误消息。

关于c - 头文件 : type defaults to 'int' 中的结构定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586522/

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