> Rock Lee <rocklee_104@xxxxxxxxxxx> 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 _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies