精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

「編程之美」函數(shù)指針方法實(shí)現(xiàn)簡單狀態(tài)機(jī)(附代碼)

開發(fā) 前端
有限狀態(tài)機(jī)FSM是有限個(gè)狀態(tài)及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型,是一種邏輯單元內(nèi)部的高效編程方法,可以根據(jù)不同狀態(tài)或者消息類型進(jìn)行相應(yīng)的處理邏輯,使得程序邏輯清晰易懂。

之前寫過一篇狀態(tài)機(jī)的實(shí)用文章,很多朋友說有幾個(gè)地方有點(diǎn)難度不易理解,今天給大家換種簡單寫法,使用函數(shù)指針的方法實(shí)現(xiàn)狀態(tài)機(jī)。

[[442452]]

狀態(tài)機(jī)簡介

有限狀態(tài)機(jī)FSM是有限個(gè)狀態(tài)及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型,是一種邏輯單元內(nèi)部的高效編程方法,可以根據(jù)不同狀態(tài)或者消息類型進(jìn)行相應(yīng)的處理邏輯,使得程序邏輯清晰易懂。

函數(shù)指針實(shí)現(xiàn)FSM

使用函數(shù)指針實(shí)現(xiàn)FSM可以分為3個(gè)步驟

  1. 建立相應(yīng)的狀態(tài)表和動(dòng)作查詢表
  2. 根據(jù)狀態(tài)表、事件、動(dòng)作表定位相應(yīng)的動(dòng)作處理函數(shù)
  3. 執(zhí)行完成后再進(jìn)行狀態(tài)的切換

代碼實(shí)現(xiàn)步驟

定義狀態(tài)數(shù)據(jù)的枚舉類型

 

  1. typedef enum { 
  2.   state_1=1, 
  3.   state_2, 
  4.   state_3, 
  5.   state_4 
  6. }State; 

定義事件的枚舉類型

 

  1. typedef enum{ 
  2.   event_1=1, 
  3.   event_2, 
  4.   event_3, 
  5.   event_4, 
  6.   event_5 
  7. }EventID; 

定義狀態(tài)表的數(shù)據(jù)類型

 

  1. typedef struct 
  2.     int event;   //事件 
  3.     int CurState;  //當(dāng)前狀態(tài) 
  4.     void (*eventActFun)();  //函數(shù)指針 
  5.     int NextState;  //下一個(gè)狀態(tài) 
  6. }StateTable; 

定義處理函數(shù)及建立狀態(tài)表

 

  1. void f121() 
  2.     printf("this is f121\n"); 
  3. void f221() 
  4.     printf("this is f221\n"); 
  5. void f321() 
  6.     printf("this is f321\n"); 
  7.  
  8. void f122() 
  9.     printf("this is f122\n"); 
  10.  
  11. StateTable fTable[] = 
  12.     //{到來的事件,當(dāng)前的狀態(tài),將要要執(zhí)行的函數(shù),下一個(gè)狀態(tài)} 
  13.     { event_1,  state_1,    f121,  event_2 }, 
  14.     { event_2,  state_2,    f221,  event_3 }, 
  15.     { event_3,  state_3,    f321,  event_4 }, 
  16.     { event_4,  state_4,    f122,  event_1 }, 
  17.     //add your code here 
  18. }; 

狀態(tài)機(jī)類型,及狀態(tài)機(jī)接口函數(shù)

 

  1. /*狀態(tài)機(jī)類型*/ 
  2. typedef struct { 
  3.     int curState;//當(dāng)前狀態(tài) 
  4.     StateTable * stateTable;//狀態(tài)表 
  5.     int size;//表的項(xiàng)數(shù) 
  6. }fsmType; 
  7.  
  8. /*狀態(tài)機(jī)注冊,給它一個(gè)狀態(tài)表*/ 
  9. void fsmRegist(fsmType* pFsm, StateTable* pTable) 
  10.     pFsm->stateTable = pTable; 
  11.  
  12. /*狀態(tài)遷移*/ 
  13. void fsmStateTransfer(fsmType* pFsm, int state) 
  14.     pFsm->curState = state; 
  15.  
  16. /*事件處理*/ 
  17. void fsmEventHandle(fsmType* pFsm, int event) 
  18.     StateTable* pActTable = pFsm->stateTable; 
  19.     void (*eventActFun)() = NULL;  //函數(shù)指針初始化為空 
  20.     int NextState; 
  21.     int CurState = pFsm->curState; 
  22.     int maxNum = pFsm->size
  23.     int flag = 0; //標(biāo)識(shí)是否滿足條件 
  24.  
  25.     /*獲取當(dāng)前動(dòng)作函數(shù)*/ 
  26.     for (int i = 0; i<maxNum; i++) 
  27.     { 
  28.         //當(dāng)且僅當(dāng)當(dāng)前狀態(tài)下來個(gè)指定的事件,我才執(zhí)行它 
  29.         if (event == pActTable[i].event && CurState == pActTable[i].CurState) 
  30.         { 
  31.             flag = 1; 
  32.             eventActFun = pActTable[i].eventActFun; 
  33.             NextState = pActTable[i].NextState; 
  34.             break; 
  35.         } 
  36.     } 
  37.  
  38.  
  39.     if (flag) //如果滿足條件了 
  40.     { 
  41.         /*動(dòng)作執(zhí)行*/ 
  42.         if (eventActFun) 
  43.         { 
  44.             eventActFun(); 
  45.         } 
  46.  
  47.         //跳轉(zhuǎn)到下一個(gè)狀態(tài) 
  48.         fsmStateTransfer(pFsm, NextState); 
  49.     } 
  50.     else 
  51.     { 
  52.         printf("there is no match\n"); 
  53.     } 

附代碼

代碼直接復(fù)制過去就行啦,本想打包的,太麻煩了。

測試程序

 

  1. //編譯器:http://www.dooccn.com/cpp/ 
  2. //來源:技術(shù)讓夢想更偉大 
  3. //作者:李肖遙 
  4. #include <stdio.h> 
  5.  
  6. typedef enum { 
  7.   state_1=1, 
  8.   state_2, 
  9.   state_3, 
  10.   state_4 
  11. }State; 
  12.  
  13. typedef enum{ 
  14.   event_1=1, 
  15.   event_2, 
  16.   event_3, 
  17.   event_4, 
  18.   event_5 
  19. }EventID; 
  20.  
  21. typedef struct { 
  22.     int event;   //事件 
  23.     int CurState;  //當(dāng)前狀態(tài) 
  24.     void (*eventActFun)();  //函數(shù)指針 
  25.     int NextState;  //下一個(gè)狀態(tài) 
  26. }StateTable; 
  27.  
  28. void f121() 
  29.     printf("this is f121\n"); 
  30. void f221() 
  31.     printf("this is f221\n"); 
  32. void f321() 
  33.     printf("this is f321\n"); 
  34.  
  35. void f122() 
  36.     printf("this is f122\n"); 
  37.  
  38. StateTable fTable[] = 
  39.     //{到來的事件,當(dāng)前的狀態(tài),將要要執(zhí)行的函數(shù),下一個(gè)狀態(tài)} 
  40.     { event_1,  state_1,    f121,  event_2 }, 
  41.     { event_2,  state_2,    f221,  event_3 }, 
  42.     { event_3,  state_3,    f321,  event_4 }, 
  43.     { event_4,  state_4,    f122,  event_1 }, 
  44.     //add your code here 
  45. }; 
  46.  
  47. /*狀態(tài)機(jī)類型*/ 
  48. typedef struct { 
  49.     int curState;//當(dāng)前狀態(tài) 
  50.     StateTable * stateTable;//狀態(tài)表 
  51.     int size;//表的項(xiàng)數(shù) 
  52. }fsmType; 
  53.  
  54. /*狀態(tài)機(jī)注冊,給它一個(gè)狀態(tài)表*/ 
  55. void fsmRegist(fsmType* pFsm, StateTable* pTable) 
  56.     pFsm->stateTable = pTable; 
  57.  
  58. /*狀態(tài)遷移*/ 
  59. void fsmStateTransfer(fsmType* pFsm, int state) 
  60.     pFsm->curState = state; 
  61.  
  62. /*事件處理*/ 
  63. void fsmEventHandle(fsmType* pFsm, int event) 
  64.     StateTable* pActTable = pFsm->stateTable; 
  65.     void (*eventActFun)() = NULL;  //函數(shù)指針初始化為空 
  66.     int NextState; 
  67.     int CurState = pFsm->curState; 
  68.     int maxNum = pFsm->size
  69.     int flag = 0; //標(biāo)識(shí)是否滿足條件 
  70.  
  71.     /*獲取當(dāng)前動(dòng)作函數(shù)*/ 
  72.     for (int i = 0; i<maxNum; i++) 
  73.     { 
  74.         //當(dāng)且僅當(dāng)當(dāng)前狀態(tài)下來個(gè)指定的事件,我才執(zhí)行它 
  75.         if (event == pActTable[i].event && CurState == pActTable[i].CurState) 
  76.         { 
  77.             flag = 1; 
  78.             eventActFun = pActTable[i].eventActFun; 
  79.             NextState = pActTable[i].NextState; 
  80.             break; 
  81.         } 
  82.     } 
  83.  
  84.  
  85.     if (flag) //如果滿足條件了 
  86.     { 
  87.         /*動(dòng)作執(zhí)行*/ 
  88.         if (eventActFun) 
  89.         { 
  90.             eventActFun(); 
  91.         } 
  92.  
  93.         //跳轉(zhuǎn)到下一個(gè)狀態(tài) 
  94.         fsmStateTransfer(pFsm, NextState); 
  95.     } 
  96.     else 
  97.     { 
  98.         printf("there is no match\n"); 
  99.     } 
  100.  
  101. int main() 
  102.     fsmType pType; 
  103.     fsmRegist(&pType,fTable); 
  104.     pType.curState = state_1; 
  105.     pType.size = sizeof(fTable)/sizeof(StateTable); 
  106.  
  107.  
  108.     printf("init state:%d\n\n",pType.curState); 
  109.  
  110.     fsmEventHandle(&pType,event_1); 
  111.     printf("state:%d\n\n",pType.curState); 
  112.  
  113.     fsmEventHandle(&pType,event_2); 
  114.     printf("state:%d\n\n",pType.curState); 
  115.  
  116.     fsmEventHandle(&pType,event_3); 
  117.     printf("state:%d\n\n",pType.curState); 
  118.  
  119.     fsmEventHandle(&pType,event_4); 
  120.     printf("state:%d\n\n",pType.curState); 
  121.  
  122.     fsmEventHandle(&pType,event_2); 
  123.     printf("state:%d\n\n",pType.curState); 
  124.  
  125.     return 0; 

編譯結(jié)果

總結(jié)

使用函數(shù)指針實(shí)現(xiàn)的FSM的過程還是比較費(fèi)時(shí)費(fèi)力的,但是這一切相對一大堆的if/else、switch/case來說都是值得的,當(dāng)你的程序規(guī)模變得越來越大的時(shí)候,基于這種表結(jié)構(gòu)的狀態(tài)機(jī),維護(hù)程序起來會(huì)清晰很多。

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2020-12-02 13:33:58

函數(shù)指針編程語言

2021-07-08 09:15:20

單片機(jī)編程狀態(tài)機(jī)編程語言

2024-10-10 17:46:06

2011-06-24 16:09:24

Qt 動(dòng)畫 狀態(tài)機(jī)

2023-03-06 07:35:30

狀態(tài)機(jī)工具訂單狀態(tài)

2025-10-29 07:38:45

2010-06-18 13:15:07

UML狀態(tài)機(jī)圖

2010-06-18 12:38:38

UML狀態(tài)機(jī)視圖

2025-10-14 03:22:00

2010-06-18 13:25:44

UML狀態(tài)機(jī)視圖

2013-09-03 09:57:43

JavaScript有限狀態(tài)機(jī)

2024-01-08 09:46:47

2011-06-29 18:36:59

Qt 動(dòng)畫 狀態(tài)機(jī)

2020-10-15 10:38:35

C語言狀態(tài)模型

2021-06-05 05:11:52

代碼狀態(tài)機(jī)邏輯

2010-07-08 13:03:31

UML狀態(tài)機(jī)圖

2020-03-27 10:50:29

DSL 狀態(tài)機(jī)工具

2010-07-12 15:00:56

UML狀態(tài)機(jī)視圖

2022-03-06 19:57:50

狀態(tài)機(jī)easyfsm項(xiàng)目

2021-08-19 09:00:00

微服務(wù)開發(fā)架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

成人免费网站视频| 一级特黄aa大片| 欧美a一欧美| 色网站国产精品| 亚洲欧美久久234| 亚洲AV无码精品色毛片浪潮| 国产精品社区| www.日韩视频| 北岛玲一区二区| 激情欧美一区二区三区黑长吊| 亚洲欧洲精品一区二区三区不卡| 91精品国产综合久久久久久丝袜 | 欧美国产在线一区| 麻豆av在线播放| 久久久www成人免费毛片麻豆| 成人a视频在线观看| 日韩久久久久久久久| 日韩欧美不卡| 亚洲精品一二区| 99九九精品视频| 六月婷婷综合| 亚洲综合色噜噜狠狠| 日本一区二区视频| 黄色av网站免费在线观看| 日本欧美一区二区| 91精品国产高清久久久久久久久| 黄色片在线观看免费| 国产劲爆久久| 51精品秘密在线观看| 国产午夜伦鲁鲁| av在线官网| 中文无字幕一区二区三区 | 国产又大又黄又粗的视频| 日本欧美电影在线观看| 国产精品色噜噜| 欧美日韩精品免费观看视一区二区| 亚洲乱熟女一区二区| 蜜桃av一区二区| 国产精品免费电影| 中文字幕精品无| 欧美亚洲一级| 欧美一级大片在线观看| 国产一级二级三级| 欧美fxxxxxx另类| 欧美h版在线观看| 99免费精品在线观看| 91精品一区二区| 最新在线中文字幕| 日韩成人一级片| 国产成人高清激情视频在线观看| 国产做受高潮漫动| 亚洲国产日韩欧美一区二区三区| 色综合久久久久久中文网| 亚洲波多野结衣| 91亚洲一区| 久久精品福利视频| 韩国一级黄色录像| 天天综合网网欲色| 久久天堂电影网| 亚洲一级黄色录像| 国产精品久久久久久| 久久资源免费视频| 欧美卡一卡二卡三| 欧美特黄一区| 7777kkkk成人观看| 特级做a爱片免费69| 另类图片国产| 国产精品爽爽爽| 国产一区二区三区三州| 国产一区二区日韩精品| 51国偷自产一区二区三区的来源| 99久久精品免费看国产交换| 国产二区国产一区在线观看| 成人av蜜桃| 久青草视频在线播放| 国产成人精品无码高潮| 国产91对白在线观看九色| 国产高清精品一区| 三级毛片在线免费看| 久久中文字幕电影| 亚洲精品二区| 在线免费观看a视频| 亚洲图片欧美一区| 日日碰狠狠躁久久躁婷婷| 亚洲成人va| 欧美一区二区观看视频| 中国特级黄色大片| 久久av超碰| 久久亚洲精品国产亚洲老地址| 九九视频免费看| 久久久久久久波多野高潮日日| 国产精品免费小视频| 99久久久国产精品无码免费| av电影在线观看完整版一区二区| 色涩成人影视在线播放| 菠萝蜜视频国产在线播放| 天天综合网 天天综合色| 欧美综合在线观看视频| 国产电影一区二区| 亚洲男人第一网站| 男人操女人的视频网站| 国产精品免费看| 国产美女精彩久久| 色综合久久久久久| 国产精品美女一区二区在线观看| 日韩精品视频在线观看视频| av有声小说一区二区三区| 日韩一区二区在线免费观看| 国产精品亚洲无码| 欧美激情五月| 国产精品视频在线观看| 日本毛片在线观看| 日韩理论片在线| 日本三级免费观看| 波多野结衣一区二区三区免费视频| 亚洲天堂av女优| 日本五十熟hd丰满| 精彩视频一区二区三区| 欧美色图亚洲自拍| 国内高清免费在线视频| 欧美精品免费视频| 男人的天堂av网| 91极品身材尤物theporn| 欧美午夜不卡| 国产在线精品一区免费香蕉| 日本午夜在线视频| 亚洲一区二区三区在线播放| 欧美wwwwwww| 欧美激情在线免费| 97视频在线播放| 丰满大乳国产精品| 综合精品久久久| 午夜国产一区二区三区| 中文字幕伦av一区二区邻居| 午夜欧美不卡精品aaaaa| 国产日韩欧美一区二区东京热 | 成人黄色免费网址| 先锋亚洲精品| 久久久神马电影| 成年人视频免费在线播放| 7777精品伊人久久久大香线蕉完整版| 国产伦精品一区二区三区视频女| 亚洲欧美日韩国产| 久久久久久久久四区三区| 国产ktv在线视频| 精品国产成人系列| 天堂资源在线播放| 国产91富婆露脸刺激对白| 日韩国产小视频| 中文无码日韩欧| 久久久久久久影院| 刘玥91精选国产在线观看| 亚洲专区一二三| 制服丝袜在线第一页| 亚洲性人人天天夜夜摸| 国产精品乱码| 欧美男男tv网站在线播放| 日韩精品在线观| aaaaaa毛片| 国产日产亚洲精品系列| 黄色片视频在线| 五月激情久久久| 5g国产欧美日韩视频| 亚洲h片在线看| 亚洲成av人影院在线观看| 日本视频www| 97久久精品人人做人人爽50路| 免费 成 人 黄 色| 少妇一区二区视频| 国产欧美一区二区三区四区| 黄网站视频在线观看| 欧美一激情一区二区三区| 久久激情免费视频| 91小视频在线观看| 亚洲天堂av线| 重囗味另类老妇506070| 黑人巨大精品欧美一区二区小视频 | 9i在线看片成人免费| 亚洲欧洲日产国码无码久久99| 欧美人与物videos另类xxxxx| 国产精品日韩精品| 菠萝菠萝蜜在线视频免费观看| 精品国产91乱码一区二区三区 | 欧美视频1区| 亚洲精品69| 91黑丝在线观看| 粉嫩av一区| 欧美一区二区三区成人| 看片网址国产福利av中文字幕| 中文在线资源观看网站视频免费不卡| 日韩高清在线一区二区| 99精品视频免费全部在线| 视频在线精品一区| 亚洲日本视频在线| 国产成人综合久久| 蜜臀av在线| 在线播放日韩专区| 韩国中文字幕hd久久精品| 欧美写真视频网站| 久久精品女人毛片国产| 国产精品三级av| 欧美日韩人妻精品一区在线| 免费在线观看视频一区| 美脚丝袜脚交一区二区| 久久国产综合| 精品国产综合久久| 成人av在线播放| 日本精品中文字幕| 丰满的护士2在线观看高清| www.亚洲成人| 天天干天天舔天天射| 欧美性xxxxxx少妇| 久久久久亚洲av成人毛片韩| 亚洲综合无码一区二区| 无码人中文字幕| 久久丝袜美腿综合| 国产免费a级片| 狠狠色狠狠色合久久伊人| 国产男女激情视频| 亚洲激情成人| h无码动漫在线观看| 色综合天天爱| 日韩一区二区三区资源| 久久久久97| 成人片在线免费看| 精品国产一区二| 国产一区二区丝袜| 成人私拍视频| 9.1国产丝袜在线观看| 欧美性video| 久久久国产一区二区| 草草影院在线观看| 亚洲视频在线免费看| 手机av在线免费观看| 精品久久一区二区三区| 国产精品毛片久久久久久久av| 在线看不卡av| 日韩黄色片网站| 欧美性xxxxx极品娇小| 久草国产精品视频| 天天操天天干天天综合网| 久久综合成人网| 亚洲专区一二三| 伊人365影院| 亚洲成人久久影院| 日韩精品一区二区三| 午夜婷婷国产麻豆精品| 国产一级片免费| 亚洲大片在线观看| 日韩欧美国产亚洲| 精品久久中文字幕久久av| 久草视频精品在线| 亚洲国产乱码最新视频| 国产极品美女高潮无套嗷嗷叫酒店| 一区二区三区免费在线观看| 麻豆亚洲av成人无码久久精品| 亚洲狼人国产精品| 免费中文字幕在线观看| 亚洲国产欧美日韩另类综合| 天堂网一区二区三区| 欧美性xxxx在线播放| 国产情侣呻吟对白高潮| 欧美三级电影一区| 国产又粗又黄又爽| 欧美www视频| 亚洲欧美一区二区三| 亚洲人成伊人成综合网久久久| 成年人视频在线看| 久久精品福利视频| segui88久久综合| 日韩免费黄色av| 久久天天久久| 91成人免费在线观看| 卡通动漫国产精品| 日韩av电影免费在线观看| 香港欧美日韩三级黄色一级电影网站| 欧美做受777cos| 国产精品久久久久9999高清| 日本888xxxx| 国产毛片一区二区| 日本japanese极品少妇| 国产午夜亚洲精品理论片色戒| 蜜桃视频最新网址| 五月综合激情婷婷六月色窝| 波多野结衣大片| 欧美一级一区二区| 日本在线一二三| 久久精品精品电影网| a级片免费在线观看| 国产精品久久久久久一区二区| 国产精品高清一区二区| 免费在线观看91| 亚洲色图插插| 99久久久无码国产精品6| 久久99国产精品免费| 白嫩情侣偷拍呻吟刺激| 中文一区二区完整视频在线观看| 日本少妇激情舌吻| 在线不卡的av| 你懂的在线看| 九九热在线精品视频| 亚洲精品一级二级| 国产精品v欧美精品∨日韩| 男女网站在线观看| 亚洲精品久久久久久国产精华液| 国产精品夜夜嗨| 在线免费看黄色片| 1024成人网| 国产免费av一区| 日韩三区在线观看| 在线观看a视频| 欧美在线一区二区三区四| 欧美中文高清| 亚洲在线不卡| 久久亚洲精品伦理| 天天躁日日躁狠狠躁av麻豆男男 | 欧美综合激情| 午夜天堂精品久久久久| 亚洲国产精品三区| 久久久综合九色合综国产精品| 免费在线一级片| 欧美剧在线免费观看网站| 成人在线二区| **欧美日韩vr在线| 国产+成+人+亚洲欧洲在线 | 国产视频一区免费看| 女人扒开腿免费视频app| 国产精品国产三级国产三级人妇| 欧美日韩一级黄色片| 亚洲国产精品久久久久久| av网址在线看| 亚洲影院高清在线| 五月开心六月丁香综合色啪| 日韩av卡一卡二| 日本一区二区三区在线观看| 国产中文字幕视频| 国产丝袜一区视频在线观看| 高端美女服务在线视频播放| 国产精品美女黄网| 亚洲一级黄色| 扒开伸进免费视频| 亚洲国产一区视频| 日本美女一级片| 69av视频在线播放| 亚洲v天堂v手机在线| 日批视频在线免费看| 久久九九99视频| 黄色av网站免费| 亚洲小视频在线观看| www.国产精品| 一区二区三区免费看| 国产呦萝稀缺另类资源| 好吊日在线视频| 精品久久久三级丝袜| 超碰在线最新网址| 久久久久久久久四区三区| 亚洲综合日韩| 综合 欧美 亚洲日本| 91精品国产91久久久久久一区二区 | 999av视频| 久久露脸国产精品| 亚洲警察之高压线| 欧美大尺度做爰床戏| 综合色天天鬼久久鬼色| 99免费在线视频| 国语自产精品视频在免费| 亚洲春色h网| 免费一区二区三区在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲国产综合网| 欧美在线不卡区| 日韩在线视屏| 欧美69精品久久久久久不卡| 午夜精品影院在线观看| 黄色的视频在线免费观看| 成人国产精品久久久| 黄色免费成人| 国产毛片久久久久久久| 在线电影欧美成精品| 国内激情视频在线观看| 婷婷五月色综合| 国产成人精品一区二| 无码人妻丰满熟妇精品区| 久久影视电视剧免费网站清宫辞电视| www国产精品| 99热手机在线| 婷婷综合五月天| 欧美videos极品另类| 国产一区二区自拍| 秋霞影院一区二区| 国产一级片免费| 中文字幕亚洲无线码a| youjizzjizz亚洲| 国产又大又黄又粗又爽| 午夜激情一区二区三区| √新版天堂资源在线资源| 国产视频不卡| 精品一区二区综合| www.国产毛片| 欧美精品videos性欧美|