نمایش نتایج 1 تا 3 از 3

نام تاپیک: مفهوم دستور While(0U) چی هست

  1. #1
    کاربر دائمی آواتار هادی2020
    تاریخ عضویت
    تیر 1385
    محل زندگی
    کاشان
    سن
    37
    پست
    235

    مفهوم دستور While(0U) چی هست

    سلام و درود
    توی کتابخونه های Stm32، Define هایی قرار دارند به شکل زیر، معنا و مفهوم شرط while چی هست.

    #define __HAL_RCC_TIM1_CLK_ENABLE() do { \
    __IO uint32_t tmpreg; \
    SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
    /* Delay after an RCC peripheral clock enabling */\
    tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
    UNUSED(tmpreg); \
    } while(0U)

    و

    #define UNUSED(x) ((void)(x))

    خوب قراره تایمر 1 رو فعال کنیم بعد از ست کردن بیت فعال سازی و خواندن بیت مربوطه به شرط حلقه while میرسیم. 0U یعنی عدد به فرمت unsigned int . در نتیجه یعنی 0 ، خوب بودن مقدار صفر در شرط while مانع از دوباره اجرا شدن حلقه میشه در نتیجه چه نیازی به بودن حلقه می باشد؟

  2. #2
    کاربر دائمی آواتار هادی2020
    تاریخ عضویت
    تیر 1385
    محل زندگی
    کاشان
    سن
    37
    پست
    235

    نقل قول: مفهوم دستور While(0U) چی هست

    دقت کنید که اینجا تعریف تابع نداریم و این دیفاین هستش
    دیفاین برای معرفی یک عبارت به جای یک دستور العمل به کار میره نه بیشتر
    برنامه نویس اینجا با استفاده از کلمه do در واقع اون چند دستور العمل را در قالب یک دستور العمل مرکب بیان کرده
    منظورم اینه که اگه اون do و while آخر را بردارید ، مترجم اشکال میگیره
    ولی با این حقه میتونیم چند دستور العمل را دیفاین کنیم که در غیر اینصورت غیر ممکن میشد
    منبع

  3. #3

    نقل قول: مفهوم دستور While(0U) چی هست

    سلام
    خسته نباشید
    شما اگر دستور do و while رو بردارید ولی کروشه ها را دست نزنید باز کامپایلر خطا نمیده، منظور بنده اینه که دستور do و while به دلیل دیگری اینجا قرار داده شده اند. آن هم ین است که هنگامی که از define استفاده میشود کامپایلر عبارت define شده را به جای عبارت قبلی در هنگام کامپایل جایگذاری میکند که این امر مستوجب رخ دادن خطاهای غیر منتظره در بعضی از مواقع میشوند که اینجا به دلیل فشای کم قادر به توضیح آن نیستم، ولی اربتاطی به چند خط بودن define ندارد. در define، / برنامه نویس را قادر می سازد تا define را چند خطی بنویسد.

تاپیک های مشابه

  1. سوال: Syntax صحیح دستور IIF در Stimul Report چی هست ؟
    نوشته شده توسط NasimBamdad در بخش ابزارهای گزارش سازی
    پاسخ: 3
    آخرین پست: پنج شنبه 28 مهر 1390, 22:29 عصر
  2. فرق این دوتا دستور در چی هست ؟؟
    نوشته شده توسط MShirzadi در بخش SQL Server
    پاسخ: 4
    آخرین پست: پنج شنبه 29 آذر 1386, 07:28 صبح
  3. پاسخ: 4
    آخرین پست: سه شنبه 19 مهر 1384, 12:53 عصر
  4. این خطا برای چی هست(مشکل با کانکت شدن به دیتابیس)
    نوشته شده توسط kochol در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 12 مهر 1384, 19:52 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •