پریپراسسور C یک ویرایش گر نوشته هست و میتونه بر. با دستورات شرطی پریپراسسور میتونید با توجه به برقراری شرط دلخواهتون تصمیم بگیرید که چند خط کد که هر چیزی در اون ممکنه نوشته شده باشه به کد اضافه بشه، یا اصلا جز برنامه نباشه.
در ادامه برای نشون دادن عملکرد این دستورات مثال هایی که در نرم افزار STM32CubeIDE نوشته شده رو میبینید. در این نرم افزار بخش هایی که جز کد نیستند با پس زمینه متفاوت نمایش داده میشوند.
فهرست
– دستور اگری (شرطی) #if در زبان برنامه نویسی C
– دستور اگری #else در زبان برنامه نویسی C
– دستور شرطی #elif در زبان برنامه نویسی C
دستور اگری #if در زبان برنامه نویسی C
روبروی #if با یک جدایی یک expression قرار میگیره. اگر مقدار این expression ناهیچا (غیر صفر) باشه ، محتویات بین #if تا #endif به کد اضافه میشه. اگر expression مقابل #if مقدارش صفر باشه، کدی که بین #if تا #endif نوشته شده جزئی از برنامه نخواهد بود.
در مقابل #if میتوان از expression های مقایسه ای یا منطقی استفاده کرد. این expression ها اگر true باشند مقدارشون یک و اگر false باشند مقدارشون صفر هست.
نکته : دقت کنید که در expression مقابل #if نمیتونه متغیر وجود داشته باشه.
دستور شرطی #else در زبان C
همراه با دستور اگری #if میشه دستور #else هم بکار برد. اگر اندازه ی expression روبروی #if هیچا باشه. آنچه بین #if تا #else هست ، بخشی از برنامه نخواهند بود و آنچه که بین #else تا #endif هستند به کد اضافه میشوند.
عملگر defined در زبان C
میتونیم در expression مقابل #if یا #elif از عملگر defined استفاده کنیم تا چک کنیم که یک ماکرو در کد تعریف شده یا خیر و با توجه به این مسئله ، بخشی به کد اضافه بشوند یا نشود.
دستور شرطی #elif در زبان C
دستورات شرطی #elif در زبان برنامه نویسی C میتونه همراه با دستور شرطی #if استفاده بشه ، زمانی که نیاز هست چند شرط رو بررسی کنیم تا تصمیم بگیریم قسمت های مختلف جز برنامه باشند یا خیر.
مقابل #elif با یک فاصله یک expression قرار میگره که با توجه به مقدار این expression تصمیم گرفته میشه برای اضافه شدن یا نشدن بخشی به کد . در مثال زیر با توجه به مقدار یک ماکرو به نام __SENSOR_TYPE تصمیم گرفته میشه که یک متغیر با چه مقدار اولیه ای تعریف بشه.
دستور شرطی #ifdef در زبان برنامه نویسی C
این دستور با توجه به تعریف شدن یا نشدن یک ماکرو در کد تصمیم میگیره که بخشی به کد اضافه بشه یا نشه.
بعد از #ifdef اسم یک ماکرو قرار میگیره. اگر این ماکرو قبلا در کد تعریف شده باشه. محتوای بین #ifdef تا #endif به کد اضافه میشه. اگر ماکرو قبلا تعریف نشده باشه، محتوای بین #ifdef تا #endif جز کد نخواهد بود.
دستور شرطی #ifndef در زبان C
این دستور هم مشابه #ifdef با توجه به اینکه یک ماکرو قبلا در کد تعریف شده یا نشده تصمیم میگیره که بخشی به کد اضافه بشه یا نشه ولی منطق این دستور برعکس منطق دستور #ifdef هست.
بعد از #ifndef اسم یک ماکرو نوشته میشه، اگر این ماکرو قبلا در کد تعریف نشده باشه ، محتوای بین #ifndef تا #endif جزئی از کد هست ، در غیر این صورت این چند خط جزئی از برنامه نخواهد بود.