Saturday 15 January 2011

c - struct definition in header file: type defaults to 'int' -



c - struct definition in header file: type defaults to 'int' -

i've construction declaration , definition in header file header.h as:

#include <linux/slab.h> struct hello{ int a; char b; }; extern struct hello *hello;

in file1.c i've:

#include<header.h> struct hello *hello; hello=kmalloc(sizeof(struct hello), __gfp_repeat); kfree(hello); //just check later if 'hello' - hello=null; //-is initialized or not.

in file2.c i've:

#include<header.h>

the struct variable hello used in file1.c , file2.c.

but while compiling error:

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

i've never used variable definition in header file. searched online , got few sources. unable find wrong. lot of other errors there after originates due mentioned error.

edited include proper codes.

is this:

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

really @ file-level scope that? can't have code outside function in c, expect different error message.

c struct kernel global-variables extern

No comments:

Post a Comment