دستورات شرطی پریپراسسور در زبان برنامه نویسی C

پریپراسسور C یک ویرایش گر متن هست و میتونه متن کد رو اصلاح کنه و تغییر بده. با دستورات شرطی پریپراسسور میتونید با توجه به برقراری شرط دلخواهتون تصمیم بگیرید که چند خط کد که هر چیزی در اون ممکنه نوشته شده باشه به کد اضافه بشه، یا اصلا جز برنامه نباشه.

در ادامه برای نشون دادن عملکرد این دستورات مثال هایی که در نرم افزار STM32CubeIDE نوشته شده رو میبینید. در این نرم افزار بخش هایی که جز کد نیستند با پس زمینه متفاوت نمایش داده میشوند.

 

فهرست

– دستور شرطی #if در زبان برنامه نویسی C

– دستور شرطی #else در زبان برنامه نویسی C

– عملگر defined در زبان C

– دستور شرطی #elif در زبان برنامه نویسی C

– دستور شرطی #ifdef در زبان برنامه نویسی C

– دستور شرطی #ifndef در زبان برنامه نویسی C

 

دستور شرطی #if در زبان برنامه نویسی C

 

مقابل #if با یک فاصله یک expression قرار میگیره. اگر مقدار این expression غیر صفر باشه ، محتویات بین #if تا #endif به کد اضافه میشه. اگر expression مقابل #if مقدارش صفر باشه، کدی که بین #if تا #endif نوشته شده جزئی از برنامه نخواهد بود.

در مقابل #if میتوان از expression های مقایسه ای یا منطقی استفاده کرد. این expression ها اگر true باشند مقدارشون یک و اگر false باشند مقدارشون صفر هست.

 

دستور شرطی #if در پریپراسسور زبان برنامه نویسی C

 

نکته : دقت کنید که در expression مقابل #if نمیتونه متغیر وجود داشته باشه.

دستور شرطی #else در زبان C

همراه با دستور شرطی #if میشه از دستور #else هم استفاده کرد. اگر مقدار expression مقابل #if صفر باشه. خطهای کد بین #if تا #else جز کد نخواهند بود و خط های کدی که بین #else تا #endif هستند به کد اضافه میشوند.

 

دستور #else در پریپراسسور زبان برنامه نویسی C

عملگر defined در زبان C

میتونیم در expression مقابل #if یا #elif از عملگر defined استفاده کنیم تا چک کنیم که یک ماکرو در کد تعریف شده یا خیر و با توجه به این مسئله ، بخشی به کد اضافه بشوند یا نشود.

 

عملگر defined در پریپراسسور زبان برنامه نویسی C

دستور شرطی #elif در زبان C

دستورات شرطی #elif در زبان برنامه نویسی C میتونه همراه با دستور شرطی #if استفاده بشه ، زمانی که نیاز هست چند شرط رو بررسی کنیم تا تصمیم بگیریم قسمت های مختلف جز برنامه باشند یا خیر.

مقابل #elif با یک فاصله یک expression قرار میگره که با توجه به مقدار این expression تصمیم گرفته میشه برای اضافه شدن یا نشدن بخشی به کد . در مثال زیر با توجه به مقدار یک ماکرو به نام __SENSOR_TYPE تصمیم گرفته میشه که یک متغیر با چه مقدار اولیه ای تعریف بشه.

 

دستور شرطی #elif در زبان برنامه نویسی C

دستور شرطی #ifdef در زبان برنامه نویسی C

این دستور با توجه به تعریف شدن یا نشدن یک ماکرو در کد تصمیم میگیره که بخشی به کد اضافه بشه یا نشه.

بعد از #ifdef اسم یک ماکرو قرار میگیره. اگر این ماکرو قبلا در کد تعریف شده باشه. محتوای بین #ifdef تا #endif به کد اضافه میشه. اگر ماکرو قبلا تعریف نشده باشه، محتوای بین #ifdef تا #endif جز کد نخواهد بود.

 

دستور شرطی #ifdef در زبان برنامه نویسی C

دستور شرطی #ifndef در زبان C

این دستور هم مشابه #ifdef با توجه به اینکه یک ماکرو قبلا در کد تعریف شده یا نشده تصمیم میگیره که بخشی به کد اضافه بشه یا نشه ولی منطق این دستور برعکس منطق دستور #ifdef هست.

بعد از #ifndef اسم یک ماکرو نوشته میشه، اگر این ماکرو قبلا در کد تعریف نشده باشه ، محتوای بین #ifndef تا #endif جزئی از کد هست ، در غیر این صورت این چند خط جزئی از برنامه نخواهد بود.

 

دستور شرطی ifndef در زبان برنامه نویسی C

 

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا