ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2010/04/07
    تهران
    922
    108

    آیا این اشاره گر به تابع هست ؟؟؟

    سلام
    به قطعه کد زیر توجه بفرمایید
    typedef enum
    }
    x
    y
    z
    example;{
    در جای دیگه ای از برنامه

    typedef struct
    {
    example (*function1) (BYTE);
    example (*function2) (BYTE);

    }example2;

    در جای دیگه ای از برنامه برای تعریف اولیه تابع
    example function1 (BYTE);
    example function2 (BYTE);
    همانطور که می بینید خیلی ساده تابع را تعریف کرده و فقط برای مقدار بازگشتی تابع از typedef enum استفاده کرده

    من ارتباط این ها رو خیلی متوجه نمیشه قسمتی که توابع را با همان enum به صورت اشاره گر استفاده کرده چه طور این اتفاق ممکنه ؟؟
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!
  2. #2
    2010/04/07
    تهران
    922
    108

    پاسخ : آیا این اشاره گر به تابع هست ؟؟؟

    هرکدام از typedef های بالا در هدرهای مختلفی نوشته شده اند
    ولی ظاهرا یک ارتباطی بینشون هست
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!
  3. #3
    2014/01/13
    122
    97

    پاسخ : آیا این اشاره گر به تابع هست ؟؟؟

    نقل قول نوشته اصلی توسط seyed saeed

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    به قطعه کد زیر توجه بفرمایید
    typedef enum
    }
    x
    y
    z
    example;{
    در جای دیگه ای از برنامه

    typedef struct
    {
    example (*function1) (BYTE);
    example (*function2) (BYTE);

    }example2;

    در جای دیگه ای از برنامه برای تعریف اولیه تابع
    example function1 (BYTE);
    example function2 (BYTE);
    همانطور که می بینید خیلی ساده تابع را تعریف کرده و فقط برای مقدار بازگشتی تابع از typedef enum استفاده کرده

    من ارتباط این ها رو خیلی متوجه نمیشه قسمتی که توابع را با همان enum به صورت اشاره گر استفاده کرده چه طور این اتفاق ممکنه ؟؟
    typedef اولی یک نوع enum را تعریف کرده است که قرار است نوع برگشتی تابع باشد
    در تعریف دوم یک ساختمان تعریف شده که حاوی دو اشاره گر به تابع است که این توابع یک کاراکتر را میگیرند و یک داده از نوع enum بالایی را برمیگردانند
  4. #4
    2010/04/07
    تهران
    922
    108

    پاسخ : آیا این اشاره گر به تابع هست ؟؟؟

    نقل قول نوشته اصلی توسط x935418

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    typedef اولی یک نوع enum را تعریف کرده است که قرار است نوع برگشتی تابع باشد
    در تعریف دوم یک ساختمان تعریف شده که حاوی دو اشاره گر به تابع است که این توابع یک کاراکتر را میگیرند و یک داده از نوع enum بالایی را برمیگردانند
    یعنی اشاره گر به تابع را هم نام با خود تابع اصلی تعریف کرده ؟؟؟
    بگذارید تا قطعه کد اصلی بگذارم
    البته جای دیگه ای برنامه برایم نا مفهوم تر است

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    typedef struct
    {
    DSTATUS (*disk_initialize) (BYTE); /*!< Initialize Disk Drive */
    DSTATUS (*disk_status) (BYTE); /*!< Get Disk Status */
    DRESULT (*disk_read) (BYTE, BYTE*, DWORD, UINT); /*!< Read Sector(s) */

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    _USE_WRITE == 1
    DRESULT (*disk_write) (BYTE, const BYTE*, DWORD, UINT); /*!< Write Sector(s) when _USE_WRITE = 0 */

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    /* _USE_WRITE == 1 */

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    _USE_IOCTL == 1
    DRESULT (*disk_ioctl) (BYTE, BYTE, void*); /*!< I/O control operation when _USE_IOCTL = 1 */

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    /* _USE_IOCTL == 1 */

    }Diskio_drvTypeDef;

    /**
    * @brief Global Disk IO Drivers structure definition
    */
    typedef struct
    {
    uint8_t is_initialized[_VOLUMES];
    const Diskio_drvTypeDef *drv[_VOLUMES];
    uint8_t lun[_VOLUMES];
    volatile uint8_t nbr;

    }Disk_drvTypeDef;
    این ها در یک هدر موجود هستند
    DRESULT disk_read (
    BYTE pdrv, /* Physical drive nmuber to identify the drive */
    BYTE *buff, /* Data buffer to store read data */
    DWORD sector, /* Sector address in LBA */
    UINT count /* Number of sectors to read */
    )
    {
    DRESULT res;

    res = disk.drv[pdrv]->disk_read(disk.lun[pdrv], buff, sector, count);
    return res;
    }
    این هم در فایل C خود قرار دارد که البته نام تابع در هدر فایل قرار گرفته با یک enum
    typedef enum {
    RES_OK = 0, /* 0: Successful */
    RES_ERROR, /* 1: R/W Error */
    RES_WRPRT, /* 2: Write Protected */
    RES_NOTRDY, /* 3: Not Ready */
    RES_PARERR /* 4: Invalid Parameter */
    } DRESULT;


    /*---------------------------------------*/
    /* Prototypes for disk control functions */


    DSTATUS disk_initialize (BYTE pdrv);
    DSTATUS disk_status (BYTE pdrv);
    DRESULT disk_read (BYTE pdrv, BYTE* buff, DWORD sector, UINT count);
    DRESULT disk_write (BYTE pdrv, const BYTE* buff, DWORD sector, UINT count);
    DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff);
    DWORD get_fattime (void);
    این هم از هدر فایل

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    من دستورات اولیه ای که گذاشتم را در ویژوال تست کردم ولی ایراد می گیره
    یعنی زمانی که
    DRESULT disk_read (
    BYTE pdrv, /* Physical drive nmuber to identify the drive */
    BYTE *buff, /* Data buffer to store read data */
    DWORD sector, /* Sector address in LBA */
    UINT count /* Number of sectors to read */
    )
    {
    DRESULT res;

    res = disk.drv[pdrv]->disk_read(disk.lun[pdrv], buff, sector, count);
    return res;
    }
    تعریف می کنم از داخل تابع ایراد می گیره
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!
نمایش نتایج: از 1 به 4 از 4

موضوعات مشابه

  1. پاسخ: 2
    آخرين نوشته: 2016/03/13, 12:49
  2. تعریف یه اشاره گر به عنوان آرگومان تابع؟
    توسط md3848 در انجمن میکروکنترلرهای AVR
    پاسخ: 20
    آخرين نوشته: 2016/02/28, 23:55
  3. پاسخ: 1
    آخرين نوشته: 2015/10/25, 14:03
  4. اشاره گر
    توسط saeed mns در انجمن میکروکنترلرهای PIC
    پاسخ: 3
    آخرين نوشته: 2013/07/11, 15:29
  5. پاسخ: 1
    آخرين نوشته: 2012/09/28, 16:51

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

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