Use a variable before it's declaration

Rock Lee rocklee_104 at outlook.com
Thu Sep 10 04:27:53 EDT 2015


> Rock Lee <rocklee_104 at outlook.com> writes:
>
>> Hi, all:
>> 	Here is a snippet of linux-v3.4 which drives me crazy.
>> Because init_task hasn't been declared yet when init_thread_union is
>> initializing. Why is there no compiling error? Any hint would be helpful.
>>
>> union thread_union init_thread_union __init_task_data =
>>
>>       { INIT_THREAD_INFO(init_task) };
>>
>>
>>
>> /*
>>
>>    * Initial task structure.
>>
>>    *
>>
>>    * All other task structs will be allocated on slabs in fork.c
>>
>>    */
>>
>> struct task_struct init_task = INIT_TASK(init_task);
>
>
> Because init_task is declared "extern" in linux/sched.h
>
>
> Bjørn

I do something like that:

extern int b;
int a = b + 10;
int b = 20;

int main(void)
{
	return 0;
}

No doubt, compiling error.

-- 
Rock Lee



More information about the Kernelnewbies mailing list