اطلاعیه

Collapse
No announcement yet.

تحلیل کد

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

    تحلیل کد

    سلام دوستان تو یه سایت خارجی داشتم دنبال یه کد می گشتم که به کد زیر بر خورد کردم . دیدم که با اینکه یه سالی میشه که به شیوه ی خودم کد نویسی می کنم . اما از این کد ها چیزی سر در نمی آرم . اینه که گفتم این کد رو بزارم تو انجمن تا بچه ها با یه تحلیل سطر به سطر از اتفاقاتی که تو این کد می افته من و دوستانی که تو این سبک کد نویسی تجربه ای ندارن رو راهنمایی کنن. ممنون از همه ی دوستایی که میان و نظر می دن
    کد:
    #ifndef _mydefs_h_ 
    #define _mydefs_h_ 
    
    #if defined(__CODEVISIONAVR__) 
    #define SBIT(port,pin) (port##.##pin) 
    #define _delay_us(x)  delay_us(x) 
    #define _delay_ms(x)  delay_ms(x) 
    
    #elif defined(__GNUC__) 
    struct bits { 
     u8 b0:1; 
     u8 b1:1; 
     u8 b2:1; 
     u8 b3:1; 
     u8 b4:1; 
     u8 b5:1; 
     u8 b6:1; 
     u8 b7:1; 
    } __attribute__((__packed__)); 
    
    #define SBIT(port,pin) ((*(volatile struct bits*)&port).b##pin) 
    
    #else 
    #error Compiler not supported 
    #endif 
    
    typedef unsigned char u8; 
    typedef  signed char s8; 
    typedef unsigned short u16; 
    typedef  signed short s16; 
    typedef unsigned long u32; 
    typedef  signed long s32; 
    
    
    #define vu8(x) (*(volatile u8*)&(x)) 
    #define vs8(x) (*(volatile s8*)&(x)) 
    #define vu16(x) (*(volatile u16*)&(x)) 
    #define vs16(x) (*(volatile s16*)&(x)) 
    #define vu32(x) (*(volatile u32*)&(x)) 
    #define vs32(x) (*(volatile s32*)&(x)) 
    
    #endif
    بخشنده بودن بيشتر از آنکه توانايي مالي بخواهد ، قلبي بزرگ ميخواهد..

    #2
    پاسخ : تحلیل کد

    این یه سری تعریف برای دو تا کامپایلر C برای AVR هست. یکیش CodeVision دومیش هم GNUC.
    برای اینکه کارِ خودشو راحت کنه نشسته SBIT و u8 و u16 و اینجور چیزا رو تعریف کرده که توی برنامه خوانا بنویسه کدش رو.
    این چیزا مربوط به فصل های آخرِ کتاب های آموزش C میشه که معمولاً توی کلاس درس و مدرسه و دانشگاه آموزش نمی دن و حقیقتاً باید برنامه نویس حرفه ای باشی تا اینجوری کد بنویسی...
    بیایید با Google آشتی کنیم!

    دیدگاه


      #3
      پاسخ : تحلیل کد

      دقیقا همین چیزی که اقای رستمی گفتند درسته
      این چیزی که گذاشتید ( چون نمیشه گفت کد ) فقط یک سری تعریف هست و چیز دیگه ای نیست
      بریا مثال وقتی توی برنامه میگه u8 یک مقدار یا یک عبارت را محاسبه کنه و بر گردونه
      امیدوارم توانسته باشم منظور رو برسونم

      دیدگاه

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