PDA

View Full Version : #define _kernel_



nima0102
شنبه 13 بهمن 1386, 21:38 عصر
با سلام
تو خیلی از سورس برنامه های لینوکس پیش پردازنده‌ی
#define _kernel_استفاده میشه ممنون میشم اگه علت تعریف این پیش پردازنده رو بگید
با تشکر

ICEMAN
یک شنبه 14 بهمن 1386, 08:27 صبح
قبل از Include کردن kernel.h استفاده میشه
#define رو هم که حتما میدونید چه کار کیکنه

nima0102
یک شنبه 14 بهمن 1386, 13:24 عصر
با سلام خیلی ممنون از توجه شما
من فایل kernel.h رو دیدم ، یعنی اگر تو برنامه
#define __kernel__ تعریف بشه دیگه نیازی نیست
#include <asm/byteorder.h> در برنامه قرار بدیم؟
برای اینکه از این پیش پردازنده تو برنامه استفاده کنیم باید kernel.h رو include کنیم؟
با تشکر

Nima_NF
یک شنبه 14 بهمن 1386, 15:01 عصر
در صورت نیاز به یک سری تعاریف و یا انواع دادهای کرنل ، شما باید __KERNEL__ را قبل از include کردن هدر فایل ها تعریف کنید تا به آن سری از موارد دسترسی داشته باشید .البته این بستگی به فضای user space یا kernel space دارد (مثل انواع u64/u32 )
زیرا آن موارد در هدر فایل های کرنل به صورتی تعریف شده اند که اگر __KERNEL__ تعریف شده است (ifdef) آن وقت تعاریف مورد نظر انجام می شود و قابل دسترسی است.

بنابراین شما فقط یک اسم را دارید تعریف می کنید و همچنان باید هدر فایل های مورد نیاز بعد آن اورده شود.

ICEMAN
دوشنبه 15 بهمن 1386, 08:34 صبح
#define

میاد kernel.h رو که یه بار include شده define میکنه و شما میتونی با


#ifndef

چک کنی که آیا kernel.h تعریف شده یا نه تا از چند بار include شدن یه header جلوگیری بشه