久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4078|回復: 0
收起左側

要學好C語言你還得看STM32提供的庫

[復制鏈接]
ID:128229 發表于 2016-6-29 01:25 | 顯示全部樓層 |閱讀模式
這倆typedef struct徹底顛覆了我對C語言知識。typedef struct _USER_STANDARD_REQUESTS
{
  void (*User_GetConfiguration)(void);       /* Get Configuration */
  void (*User_SetConfiguration)(void);       /* Set Configuration */
  void (*User_GetInterface)(void);           /* Get Interface */
  void (*User_SetInterface)(void);           /* Set Interface */
  void (*User_GetStatus)(void);              /* Get Status */
  void (*User_ClearFeature)(void);           /* Clear Feature */
  void (*User_SetEndPointFeature)(void);     /* Set Endpoint Feature */
  void (*User_SetDeviceFeature)(void);       /* Set Device Feature */
  void (*User_SetDeviceAddress)(void);       /* Set Device Address */
}
USER_STANDARD_REQUESTS;
typedef struct _DEVICE_PROP
{
  void (*Init)(void);        /* Initialize the device */
  void (*Reset)(void);       /* Reset routine of this device */
  /* Device dependent process after the status stage */
  void (*Process_Status_IN)(void);
  void (*Process_Status_OUT)(void);
  /* Procedure of process on setup stage of a class specified request with data stage */
  /* All class specified requests with data stage are processed in Class_Data_Setup
   Class_Data_Setup()
    responses to check all special requests and fills ENDPOINT_INFO
    according to the request
    If IN tokens are expected, then wLength & wOffset will be filled
    with the total transferring bytes and the starting position
    If OUT tokens are expected, then rLength & rOffset will be filled
    with the total expected bytes and the starting position in the buffer
    If the request is valid, Class_Data_Setup returns SUCCESS, else UNSUPPORT
   CAUTION:
    Since GET_CONFIGURATION & GET_INTERFACE are highly related to
    the individual classes, they will be checked and processed here.
  */
  RESULT (*Class_Data_Setup)(uint8_t RequestNo);
  /* Procedure of process on setup stage of a class specified request without data stage */
  /* All class specified requests without data stage are processed in Class_NoData_Setup
   Class_NoData_Setup
    responses to check all special requests and perform the request
   CAUTION:
    Since SET_CONFIGURATION & SET_INTERFACE are highly related to
    the individual classes, they will be checked and processed here.
  */
  RESULT (*Class_NoData_Setup)(uint8_t RequestNo);
  /*Class_Get_Interface_Setting
   This function is used by the file usb_core.c to test if the selected Interface
   and Alternate Setting (uint8_t Interface, uint8_t AlternateSetting) are supported by
   the application.
   This function is writing by user. It should return "SUCCESS" if the Interface
   and Alternate Setting are supported by the application or "UNSUPPORT" if they
   are not supported. */
  RESULT  (*Class_Get_Interface_Setting)(uint8_t Interface, uint8_t AlternateSetting);
  uint8_t* (*GetDeviceDescriptor)(uint16_t Length);
  uint8_t* (*GetConfigDescriptor)(uint16_t Length);
  uint8_t* (*GetStringDescriptor)(uint16_t Length);
  uint8_t* RxEP_buffer;
  uint8_t MaxPacketSize;
}DEVICE_PROP;
應用分析:struct是一個結構體,可以用來構造數據類型。所以可以得知這兩個struct里面的數據不是函數,而是函數指針,即它是一個指針,指向一個函數。RESULT,uint8_t*,void是函數的返回值類型。


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美一区二区精品性色超碰 | 免费欧美视频 | 97国产精品人人爽人人做 | 男人亚洲天堂 | 免费看一级黄色片 | 在线观看视频一区二区 | 久久久久国产精品夜夜夜夜夜 | 一本一道久久a久久精品蜜桃 | 青青久操 | 亚洲免费在线观看 | 一区二区精品在线 | 欧美日韩在线一区二区 | 国产精品一区在线 | 久久精品欧美一区二区三区不卡 | 毛片视频免费 | 国产视频一区二区在线 | 欧美成年人视频 | 欧美一区二区免费 | 九九热在线视频观看 | 99中文字幕| 国产91丝袜在线播放 | 亚洲精品色图 | 日本天堂在线观看 | 日韩av手机在线 | 日韩欧美一区二区在线 | 一区二区三区不卡视频 | 日韩精品视频在线播放 | 麻豆国产一区二区三区四区 | 精品一区二区在线播放 | 91蜜桃婷婷狠狠久久综合9色 | 亚洲激情视频在线观看 | www.一区二区 | 在线观看日韩 | 一区二区三区在线观看视频 | 欧美a一级| 国产一区二区网站 | 国产无遮挡 | 日韩三级在线播放 | 欧美在线激情 | 一区二区毛片 | cao视频|