با سلام
تو خیلی از سورس برنامه های لینوکس پیش پردازندهی#define _kernel_استفاده میشه ممنون میشم اگه علت تعریف این پیش پردازنده رو بگید
با تشکر
با سلام
تو خیلی از سورس برنامه های لینوکس پیش پردازندهی#define _kernel_استفاده میشه ممنون میشم اگه علت تعریف این پیش پردازنده رو بگید
با تشکر
قبل از Include کردن kernel.h استفاده میشه
#define رو هم که حتما میدونید چه کار کیکنه
با سلام خیلی ممنون از توجه شما
من فایل kernel.h رو دیدم ، یعنی اگر تو برنامه#define __kernel__تعریف بشه دیگه نیازی نیست#include <asm/byteorder.h>در برنامه قرار بدیم؟
برای اینکه از این پیش پردازنده تو برنامه استفاده کنیم باید kernel.h رو include کنیم؟
با تشکر
در صورت نیاز به یک سری تعاریف و یا انواع دادهای کرنل ، شما باید __KERNEL__ را قبل از include کردن هدر فایل ها تعریف کنید تا به آن سری از موارد دسترسی داشته باشید .البته این بستگی به فضای user space یا kernel space دارد (مثل انواع u64/u32 )
زیرا آن موارد در هدر فایل های کرنل به صورتی تعریف شده اند که اگر __KERNEL__ تعریف شده است (ifdef) آن وقت تعاریف مورد نظر انجام می شود و قابل دسترسی است.
بنابراین شما فقط یک اسم را دارید تعریف می کنید و همچنان باید هدر فایل های مورد نیاز بعد آن اورده شود.
#define
میاد kernel.h رو که یه بار include شده define میکنه و شما میتونی با
#ifndef
چک کنی که آیا kernel.h تعریف شده یا نه تا از چند بار include شدن یه header جلوگیری بشه