اطلاعیه

Collapse
No announcement yet.

کد های کاربردی در کتابخانه نویسی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کد های کاربردی در کتابخانه نویسی

    سلام خدمت دوستان



    #ifnded __keypad_h__
    #define __keypad_h__

    ...// text of the library

    #endif



    اگه ممکنه لطف کنین در مورد این کد ها و کاربرد و مزایاشون توضیحی بدین
    در ضمن کد ها ی دیگه ای هم وجود داره؟ مثلا چه کد هایی؟ با چه کاربرد هایی؟
    ممنون دوستان
    جدیدترین ویرایش توسط electromohammad; ۱۰:۱۶ ۱۴۰۰/۰۶/۱۳.
    همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
    لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
    تایپیک های من:
    حل تمام مشکلات atmega128a (eca.ir)
    آموزش کار با سایت (eca.ir)

    #2
    پاسخ : کد های کاربردی در کتابخانه نویسی

    باسلام.
    اصولا ماکرو ها برای آسان شدن فرایند توسعه و بالاخص ویژگی portability یا قابلیت پورت شدن روی چند سری از یک خانواده مثل AVR یا حتی پورت شدن بین چند معماری متفاوت ایجاد شدند.
    فرضا شما یک پروژه ای مثل grbl یا fatfs رو برای AVR نوشتید.فرضا اگر قرار بر تغییر معماری و رفتن یه سمت ARM باشه و شما بدون استفاده از ماکرو پروژه رو شروع کردید ،کار بسیار سختی خواهید داشت چون مثلا رجیستر ها و بیت های مربوط به spi در AVR با ARM زمین تا آسمان متفاوته و شما مجبورید بسیاری از بخش های کدتون رو اصلاح کنید ولی اگه به سورس کد همین دو پروژه بزرگی که بالا ذکر کردم مراجعه کنید، خواهید دید که به سادگی میشه این کار رو انجام داد.

    دیدگاه


      #3
      پاسخ : کد های کاربردی در کتابخانه نویسی

      نوشته اصلی توسط A.I.E نمایش پست ها
      باسلام.
      اصولا ماکرو ها برای آسان شدن فرایند توسعه و بالاخص ویژگی portability یا قابلیت پورت شدن روی چند سری از یک خانواده مثل AVR یا حتی پورت شدن بین چند معماری متفاوت ایجاد شدند.
      فرضا شما یک پروژه ای مثل grbl یا fatfs رو برای AVR نوشتید.فرضا اگر قرار بر تغییر معماری و رفتن یه سمت ARM باشه و شما بدون استفاده از ماکرو پروژه رو شروع کردید ،کار بسیار سختی خواهید داشت چون مثلا رجیستر ها و بیت های مربوط به spi در AVR با ARM زمین تا آسمان متفاوته و شما مجبورید بسیاری از بخش های کدتون رو اصلاح کنید ولی اگه به سورس کد همین دو پروژه بزرگی که بالا ذکر کردم مراجعه کنید، خواهید دید که به سادگی میشه این کار رو انجام داد.
      سلام باز هم ممنون
      ممکنه از کاربردی تریناشون برام مثالی بزنین؟ در ضمن برای درست کردن کتابخونه توی اتمل استودیو چه تنظیماتی نیازه؟
      *(ولی اگه به سورس کد همین دو پروژه بزرگی که بالا ذکر کردم مراجعه کنید، خواهید دید که به سادگی میشه این کار رو انجام داد.) ؟؟؟
      خیلی ممنون
      همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
      لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
      تایپیک های من:
      حل تمام مشکلات atmega128a (eca.ir)
      آموزش کار با سایت (eca.ir)

      دیدگاه


        #4
        پاسخ : کد های کاربردی در کتابخانه نویسی

        نوشته اصلی توسط electromohammad نمایش پست ها
        سلام خدمت دوستان



        #ifnded __keypad_h__
        #define __keypad_h__

        ...// text of the library

        #endif



        اگه ممکنه لطف کنین در مورد این کد ها و کاربرد و مزایاشون توضیحی بدین
        در ضمن کد ها ی دیگه ای هم وجود داره؟ مثلا چه کد هایی؟ با چه کاربرد هایی؟
        ممنون دوستان
        سلام
        به این قطعه کد میگن Include Guard. کارش هم اینه که نمیذاره یک هدر دوبار فراخوانی یا اصطلاحا الحاق مجدد بشه. اگر یک هدر دوبار فراخوانی بشه، موقع بیلد پروژه، کمپایلر ارور میگیره که مثلا از یک اسم برای 2 تابع استفاده شده در حالی که منظور برنامه نویس فقط یک تابع و در کل یک فایل هدر بوده.
        کارکرد Include Guard به این شکله که وقتی کمپایلر میخواد این هدر رو بخونه میاد چک میکنه مثلا __keypad_h__ رو قبلا دیده یا نه. اگر ندیده باشه میفهمه باید بره بقیه فایل رو بخونه و در ضمن یادش میمونه که قبلا __keypad_h__ رو یک بار دیده و کدهای زیرشو خونده. برای دفعات بعدی که کمپایلر مراجعه میکنه به این فایل، میبینه ثابت __keypad_h__ رو قبلا دیده و دیگه لازم نیست کدهای زیرشو بررسی کنه. اسم این ثابت هرچیزی میتونه باشه ولی باید توجه داشت توی هدرهای دیگه از این اسم استفاده نشه.

        دیدگاه

        لطفا صبر کنید...
        X