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

Go語言之再談?wù)麛?shù)類型

開發(fā) 后端
在Go語言中,type關(guān)鍵字不僅可以定義結(jié)構(gòu)體(struct)和接口(interface),實際上可以用于聲明任何數(shù)據(jù)類型,非常非常地強悍。

[[427102]]

 前言

【Go】內(nèi)存中的整數(shù) 一文詳細介紹了int類型,對 int 數(shù)據(jù)及其類型建立起基本的認識。

再談?wù)麛?shù)類型的目的,是為了進一步剖析Go語言的類型系統(tǒng),從底層化解潛在的錯誤認知。

在Go語言中,type關(guān)鍵字不僅可以定義結(jié)構(gòu)體(struct)和接口(interface),實際上可以用于聲明任何數(shù)據(jù)類型,非常非常地強悍。例如,

  1. type calc func(a, b intint 
  2.  
  3. type Foo int 

有人說,在以上代碼中,type關(guān)鍵字的作用是定義類型的別名,F(xiàn)oo就是int的別名,F(xiàn)oo類型就是int類型。

本文將帶你深入了解int類型與Foo類型,保證你吃不了虧,保證你上不了當。

環(huán)境

  1. OS : Ubuntu 20.04.2 LTS; x86_64  
  2. Go : go version go1.16.2 linux/amd64 

聲明

操作系統(tǒng)、處理器架構(gòu)、Go版本不同,均有可能造成相同的源碼編譯后運行時的寄存器值、內(nèi)存地址、數(shù)據(jù)結(jié)構(gòu)等存在差異。

本文僅包含 64 位系統(tǒng)架構(gòu)下的 64 位可執(zhí)行程序的研究分析。

本文僅保證學習過程中的分析數(shù)據(jù)在當前環(huán)境下的準確有效性。

代碼清單

int_kind.go

  1. package main 
  2.  
  3. import "fmt" 
  4. import "reflect" 
  5. import "strconv" 
  6.  
  7. type Foo int 
  8.  
  9. //go:noinline 
  10. func (f Foo) Ree() int { 
  11.   return int(f) 
  12.  
  13. //go:noinline 
  14. func (f Foo) String() string { 
  15.   return strconv.Itoa(f.Ree()) 
  16.  
  17. //go:noinline 
  18. func (f Foo) print() { 
  19.   fmt.Println("foo is " + f.String()) 
  20.  
  21. func main() { 
  22.   Typeof(123) 
  23.   Typeof(Foo(456)) 
  24.  
  25. //go:noinline 
  26. func Typeof(i interface{}) { 
  27.   t := reflect.TypeOf(i) 
  28.   fmt.Println("值  ", i) 
  29.   fmt.Println("名稱", t.Name()) 
  30.   fmt.Println("類型", t.String()) 
  31.   fmt.Println("方法"
  32.   num := t.NumMethod() 
  33.   if num > 0 { 
  34.     for j := 0; j < num; j++ { 
  35.       fmt.Println("  ", t.Method(j).Name, t.Method(j).Type) 
  36.     } 
  37.   } 
  38.   fmt.Println() 

代碼清單中,Typeof函數(shù)用于顯示數(shù)據(jù)對象的類型信息。

運行結(jié)果

僅僅從運行結(jié)果看,我們就知道Foo類型不是int類型,F(xiàn)oo不是int的別名。

數(shù)據(jù)結(jié)構(gòu)介紹

在reflect/type.go源文件中,定義了兩個數(shù)據(jù)結(jié)構(gòu)uncommonType和method,用于存儲和解析數(shù)據(jù)類型的方法信息。

  1. type uncommonType struct { 
  2.     pkgPath nameOff  // 包路徑名稱偏移量 
  3.     mcount  uint16   // 方法的數(shù)量 
  4.     xcount  uint16   // 公共導出方法的數(shù)量 
  5.     moff    uint32   // [mcount]method 相對本對象起始地址的偏移量 
  6.     _       uint32   // unused 

reflect.uncommonType結(jié)構(gòu)體用于描述一個數(shù)據(jù)類型的包名和方法信息。

  1. // 非接口類型的方法 
  2. type method struct { 
  3.     name nameOff // 方法名稱偏移量 
  4.     mtyp typeOff // 方法類型偏移量 
  5.     ifn  textOff // 通過接口調(diào)用時的地址偏移量;接口類型本文不介紹 
  6.     tfn  textOff // 直接類型調(diào)用時的地址偏移量 

reflect.method結(jié)構(gòu)體用于描述一個方法,它是一個壓縮格式的結(jié)構(gòu),每個字段的值都是一個相對偏移量。

  1. type nameOff int32 // offset to a name 
  2. type typeOff int32 // offset to an *rtype 
  3. type textOff int32 // offset from top of text section 
  • nameOff 是相對程序 .rodata 節(jié)起始地址的偏移量。
  • typeOff 是相對程序 .rodata 節(jié)起始地址的偏移量。
  • textOff 是相對程序 .text 節(jié)起始地址的偏移量。

  • 關(guān)于 reflect.name結(jié)構(gòu)體的介紹,請閱讀 【Go】內(nèi)存中的整數(shù) 。

內(nèi)存分析

在Typeof函數(shù)入口處設(shè)置斷點,首先查看 123 這個 int 對象的類型信息。

int 類型

在 【Go】內(nèi)存中的整數(shù) 一文,介紹了int類型信息占用 48 個字節(jié), 實際上int類型信息占用 64 個字節(jié),只不過int類型并沒有任何方法(method),所以前文忽略了uncommonType數(shù)據(jù)。

int類型信息結(jié)構(gòu)如下偽代碼所示:

  1. type intType struct { 
  2.   rtype 
  3.   u uncommonType 

其結(jié)構(gòu)分布如下圖所示:

本文要更進一步分析數(shù)據(jù)的類型,所以需要將uncommonType數(shù)據(jù)拿出來對比。

  • rtype.size = 8
  • rtype.ptrdata = 0
  • rtype.hash = 0xf75371fa
  • rtype.tflag = 0xf = reflect.tflagUncommon | reflect.tflagExtraStar | reflect.tflagNamed | reflect.tflagRegularMemory
  • rtype.align = 8
  • rtype.fieldAlign = 8
  • rtype.kind = 2 = reflect.Int
  • rtype.equal = 0x4fbd98 -> runtime.memequal64
  • rtype.str = 0x000003e3 -> *int字符串
  • rtype.ptrToThis = 0x00007c00 -> *int類型
  • uncommonType.pkgPath = 0
  • uncommonType.mcount = 0 -> 沒有方法
  • uncommonType.xcount = 0
  • uncommonType.moff = 0x10

將int類型數(shù)據(jù)繪制成圖表如下:

此處不再對int類型信息進行詳細介紹,僅說明 rtype.tflag字段;該字段包含reflect.tflagUncommon標記,表示類型信息中包含uncommonType數(shù)據(jù)。

uncommonType.mcount = 0表示類型信息中不包含方法信息。

Foo 類型

Foo類型因為包含方法信息,要比int類型復雜許多,其類型信息結(jié)構(gòu)如下偽代碼所示:

  1. type FooType struct { 
  2.   rtype 
  3.   u uncommonType 
  4.   methods [u.mcount]method 

結(jié)構(gòu)分布如下圖所示:

以同樣的方式查看Foo類型數(shù)據(jù):

  • rtype.size = 8
  • rtype.ptrdata = 0
  • rtype.hash = 0xec552021
  • rtype.tflag = 0xf = reflect.tflagUncommon | reflect.tflagExtraStar | reflect.tflagNamed | reflect.tflagRegularMemory
  • rtype.align = 8
  • rtype.fieldAlign = 8
  • rtype.kind = 2 = reflect.Int
  • rtype.equal = 0x4fbd98 -> runtime.memequal64
  • rtype.str = 0x00002128 -> *main.Foo字符串
  • rtype.ptrToThis = 0x00014c00 -> *Foo類型
  • uncommonType.pkgPath = 0x000003c4 -> main字符串
  • uncommonType.mcount = 3 -> 方法數(shù)量
  • uncommonType.xcount = 2 -> 公共導出方法數(shù)量
  • uncommonType.moff = 0x10
  • method[0].name = 0x000001e8
  • method[0].mtyp = 0x0000be60
  • method[0].ifn = 0x000c7740
  • method[0].tfn = 0x000c6fe0
  • method[1].name = 0x00001025
  • method[1].mtyp = 0x0000c0e0
  • method[1].ifn = 0x000c77c0
  • method[1].tfn = 0x000c7000
  • method[2].name = 0x00000da0
  • method[2].mtyp = 0x0000b600
  • method[2].ifn = 0xffffffff
  • method[2].tfn = 0xffffffff

將Foo類型數(shù)據(jù)繪制成圖表如下:

類型對比

  • int和Foo兩種類型屬于同一種數(shù)據(jù)類別(reflect.Kind),都是reflect.Int。
  • int和Foo兩種類型比較函數(shù)相同,都是runtime.memequal64。
  • int和Foo數(shù)據(jù)對象內(nèi)存大小相同,都是8。
  • int和Foo數(shù)據(jù)對象內(nèi)存對齊相同,都是8。
  • int和Foo兩種類型名稱不同。
  • int和Foo兩種類型哈希種子不同。
  • int和Foo兩種類型方法數(shù)量不同。
  • int和Foo兩種類型的指針類型不同。

類型方法

我們再回顧一下reflect.method結(jié)構(gòu)體的各個字段:

  • name字段描述的是方法名稱偏移量。
  • mtyp字段描述的是方法類型信息偏移量;關(guān)于函數(shù)類型介紹,敬請期待。
  • ifn字段描述的是接口調(diào)用該方法時的指令內(nèi)存地址偏移量;關(guān)于接口類型介紹,敬請期待。
  • tfn字段描述的是直接調(diào)用該方法時的指令內(nèi)存地址偏移量。

Foo類型有3個方法,它們的類型信息保存在0x4dd8e0地址處;通過偏移量計算地址,查看方法的名稱、地址、指令。

方法名稱

  • methods[0].name = Ree
  • methods[1].name = String
  • methods[2].name = print

從內(nèi)存分析數(shù)據(jù)看,F(xiàn)oo類型的三個方法信息的保存順序似乎與源碼中定義的順序相同,其實不然。

數(shù)據(jù)類型的方法信息保存順序是大寫字母開頭的公共導出方法在前,小寫字母開頭的包私有方法在后,我們可以通過reflect/type.go源文件中的代碼印證這一點:

  1. func (t *uncommonType) methods() []method { 
  2.   if t.mcount == 0 { 
  3.     return nil 
  4.   } 
  5.   return (*[1 << 16]method)(add(unsafe.Pointer(t), uintptr(t.moff), "t.mcount > 0"))[:t.mcount:t.mcount] 
  6.  
  7. func (t *uncommonType) exportedMethods() []method { 
  8.   if t.xcount == 0 { 
  9.     return nil 
  10.   } 
  11.   return (*[1 << 16]method)(add(unsafe.Pointer(t), uintptr(t.moff), "t.xcount > 0"))[:t.xcount:t.xcount] 

方法類型

關(guān)于函數(shù)類型與接口方法,后續(xù)會有專題文章詳細介紹,本文將不再深入探究。

方法地址

從內(nèi)存數(shù)據(jù)看到,

  • Ree方法的地址偏移是0x000c6fe0,通過計算可以在0x4c7fe0地址處找到其機器指令。
  • String方法的地址偏移是0x000c7000,通過計算可以在0x4c8000地址處找到其機器指令。
  • print方法的地址偏移是0xffffffff,也就是-1,意思是找不到該方法。

我們明明在源碼中定義了print方法,為什么找不到該方法呢?

原因是:print方法是一個私有方法,不會被外部調(diào)用,但是main包范圍內(nèi)又沒有調(diào)用者; Go編譯器本著勤儉節(jié)約的原則,把print方法優(yōu)化丟棄掉了,即使使用go:noinline指令禁止內(nèi)斂也不管用,就是直接干掉。

Go編譯器的類似優(yōu)化行為隨處可見,在后續(xù)文章中會逐步介紹。

通過本文,詳細你對 type 關(guān)鍵字有了更加深入的了解,對 Go 語言的類型系統(tǒng)有了更加深入的了解,和想象中的是否有所不同?

責任編輯:武曉燕 來源: Golang In Memory
相關(guān)推薦

2021-10-23 06:42:14

Go語言接口

2024-05-10 08:04:44

開發(fā)者Go語言

2020-12-31 09:06:44

Go語言Reflect

2022-03-28 13:34:26

Go泛型部署泛型

2021-10-09 07:52:01

Go程序重命名

2021-10-16 17:53:35

Go函數(shù)編程

2019-01-03 09:45:20

Go 前端 Web

2024-01-05 20:46:14

2021-05-12 08:53:54

Go語言調(diào)度

2013-08-20 10:11:20

Go系統(tǒng)管理員

2021-10-18 10:53:26

Go 代碼技術(shù)

2023-06-26 00:03:55

Go語言類型

2023-07-16 23:43:05

Go語言模式

2024-01-08 08:23:07

Go語言代碼

2013-07-10 11:11:05

PythonGo語言

2018-08-01 15:10:02

GolangPython語言

2017-06-14 09:37:05

R語言Apriori算法

2012-02-13 10:03:31

編程開發(fā)

2012-08-13 14:13:46

2024-04-26 00:01:00

Go語言類型
點贊
收藏

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

国产黄在线播放| 日本免费一二三区| 国产95亚洲| 中文字幕不卡三区| 成人中文字幕+乱码+中文字幕| 日本二区三区视频| 亚洲午夜免费| 色综合欧美在线视频区| 一区二区三区精品国产| 91丨九色丨蝌蚪丨对白| 国内精品亚洲| 国产一区二区久久精品| 992kp免费看片| 欧美aa一级| 亚洲欧洲日韩女同| 精品免费日产一区一区三区免费| 天天操天天干天天摸| 欧美黄污视频| 亚洲天堂成人在线| 亚洲一级片免费观看| 理论片午夜视频在线观看| 亚洲国产精品国自产拍av| 成人欧美一区二区| 国产在线观看第一页| 午夜日韩av| 一个人www欧美| 99免费观看视频| 成人网ww555视频免费看| 亚洲国产人成综合网站| 天天好比中文综合网| 亚洲春色一区二区三区| 美女精品一区二区| 美女少妇精品视频| 国产女主播喷水高潮网红在线| 精品久久久久久久久久岛国gif| 日韩欧美福利视频| 日本黄色片一级片| 国产精品一区二区三区视频网站| 久久精品综合网| 国产精品久久亚洲| 国产免费叼嘿网站免费| 视频在线观看一区| 欧美在线不卡区| 日韩污视频在线观看| 欧美特黄a级高清免费大片a级| www.亚洲成人| 青青操在线视频观看| 精品国产一区二区三区四区| 亚洲精品99久久久久中文字幕| 久久综合在线观看| avtt久久| 欧美精品第一页| 污片在线免费看| 91精品论坛| 亚洲主播在线观看| 麻豆md0077饥渴少妇| 日本免费中文字幕在线| 欧美激情在线看| 日韩三级电影免费观看| 欧美69xxxxx| 91丝袜呻吟高潮美腿白嫩在线观看| 97超碰在线播放| 国产成人精品无码高潮| 国内精品伊人久久久久av一坑| 好看不卡的中文字幕| 在线一区二区视频| 国产男女无遮挡| 国产夫妻在线| 亚洲1区2区3区4区| 男女猛烈激情xx00免费视频| 激情网站在线| 亚洲午夜久久久久中文字幕久| 加勒比海盗1在线观看免费国语版| 日本美女在线中文版| 国产精品国产精品国产专区不片 | 99热这里只有精品免费| 黄色网页在线观看| 亚洲男人的天堂在线aⅴ视频 | 亚洲黄色a级片| 高清成人在线观看| 国产一区二区精品免费| 四虎永久在线精品免费网址| 久久一夜天堂av一区二区三区| 欧美日韩亚洲综合一区二区三区激情在线| 天堂v视频永久在线播放| 久久久久国产成人精品亚洲午夜| 深田咏美在线x99av| 欧美r级在线| 一区二区久久久久| 91九色在线观看视频| 日本综合久久| 欧美一区二区私人影院日本| 怡红院一区二区| 精品久久久久久久久久久下田| 亚洲精选中文字幕| 久久久久久国产免费a片| 天天影视欧美综合在线观看| 欧美精品在线免费| 久久99精品波多结衣一区| 日韩av一区二区三区| 成人做爰www免费看视频网站| 国产99对白在线播放| 99精品视频中文字幕| 亚洲第一综合| 久草在线视频福利| 欧美午夜电影网| 欧美午夜精品一区二区| 欧美日韩激情| 欧美激情精品久久久久久黑人 | 欧美91大片| 国产91ⅴ在线精品免费观看| 在线观看国产一区二区三区| 粉嫩av一区二区三区在线播放| 欧美一区视久久| 影音先锋男人在线资源| 午夜久久久久久久久| 免费看黄色一级大片| 视频二区欧美毛片免费观看| 精品一区电影国产| 日韩三级久久久| 亚洲欧美不卡| 97久久夜色精品国产九色| 欧洲亚洲精品视频| 尤物在线观看一区| 久久久精品三级| 懂色av一区二区| 日日骚久久av| 天堂中文在线网| 国产不卡在线一区| 亚洲精品中字| 刘亦菲一区二区三区免费看| 欧美一级一级性生活免费录像| 在线观看福利片| 日韩一级精品| 99re在线播放| 九色porny丨首页在线| 色狠狠色狠狠综合| 日本黄色录像片| 欧美a级在线| 成人高清视频观看www| 男人天堂网在线| 亚洲成a人v欧美综合天堂下载| 香蕉视频禁止18| 亚洲涩涩av| 77777亚洲午夜久久多人| 国产欧美一区二区三区视频在线观看| 国产精品2区| 久久一区二区三区四区五区| 91精品婷婷国产综合久久蝌蚪| 亚洲三级黄色片| 亚洲精品国产第一综合99久久 | 伊人网在线视频观看| 亚洲无线一线二线三线区别av| 成人淫片在线看| 天堂中文8资源在线8| 欧美无砖砖区免费| 免费在线观看a视频| 久久一区精品| 日韩av在线电影观看| 久久久久久久| 国产亚洲美女久久| 国产精品xxxxxx| 久久久蜜桃精品| 妞干网在线免费视频| 女人av一区| 国产99视频在线观看| 高清性色生活片在线观看| 91国偷自产一区二区三区成为亚洲经典| 女同性恋一区二区三区| 亚洲三级电影在线观看| 国产精品区一区二区三在线播放| 久色国产在线| 亚洲国产精品字幕| 好吊操这里只有精品| 91在线一区二区| 久久久久久久久久久久久国产精品| 成人av地址| 久久噜噜噜精品国产亚洲综合| 熟妇人妻系列aⅴ无码专区友真希| 亚瑟在线精品视频| 黄色在线观看av| 日韩av不卡一区二区| 天天成人综合网| 久久久久毛片免费观看| 久久久久久成人精品| 国产高清在线免费| 婷婷综合五月天| 亚洲一区二区三区综合| 久久午夜激情| 在线免费观看成人网| 亚洲日本视频在线| 欧美孕妇与黑人孕交| 国产在线网站| 宅男在线国产精品| 国产特黄大片aaaa毛片| 国产欧美一区二区精品性色 | 激情综合网五月婷婷| 久久免费看少妇高潮| 亚洲怡红院在线| 亚洲精品精选| 亚洲春色在线视频| 粉嫩精品导航导航| 国产精品美女网站| 在线中文字幕电影| 亚洲欧美国内爽妇网| 91精品国自产| 精品国产福利在线| 蜜桃视频最新网址| 99精品久久久久久| 成年网站免费在线观看| 国产精品嫩草99av在线| 伊人色综合影院| 亚洲a级精品| 114国产精品久久免费观看| 日本一区二区三区www| 不卡一二三区| 欧美激情精品久久久久久久变态 | 91精品中文字幕| 色综合视频一区二区三区高清| 男人的天堂久久久| 国产精品系列在线| 性欧美成人播放77777| 国产成人免费xxxxxxxx| 日本77777| 免费在线一区观看| 欧美污视频网站| 亚洲美女色禁图| 97碰在线视频| 国产一区亚洲| 久久久成人精品一区二区三区 | 国产三级理论片| 色综合天天性综合| 久久久国产高清| 亚洲va欧美va人人爽| 麻豆亚洲av熟女国产一区二| 国产精品不卡视频| 人与动物性xxxx| 亚洲色图丝袜美腿| 国产精品国产三级国产传播| 1024精品合集| 精品无码一区二区三区蜜臀| 成人欧美一区二区三区小说| 男人晚上看的视频| 中文字幕一区二区在线观看 | 99久久夜色精品国产亚洲96 | 一本不卡影院| www.99热这里只有精品| 亚洲精品孕妇| 伊人成色综合网| 中文亚洲免费| 久久久久人妻精品一区三寸| 免费日韩av片| 亚洲国产精品毛片av不卡在线| 美女精品网站| 一区二区成人网| 蜜桃视频在线观看一区| 九九热免费在线观看| 国产精品自拍三区| 午夜视频在线免费看| 成人午夜av在线| 亚洲av无码一区二区三区观看| 91网站在线播放| 一级片久久久久| ㊣最新国产の精品bt伙计久久| 成人在线观看高清| 亚洲自拍另类综合| 久久国产黄色片| 一道本成人在线| 这里只有精品免费视频| 3atv在线一区二区三区| 亚洲AV无码精品自拍| 日韩国产欧美精品一区二区三区| 免费在线视频一级不卡| 视频一区视频二区国产精品 | 亚洲综合视频网| 800av免费在线观看| 欧美亚洲丝袜传媒另类| 国产视频手机在线| 亚洲大胆人体av| 国产免费av高清在线| 久久夜色精品国产| 免费在线小视频| 国产精品欧美风情| 亚洲综合色婷婷在线观看| 欧美黑人3p| 欧美成人日本| 可以在线看的黄色网址| 久久99深爱久久99精品| 男人的天堂影院| 亚洲国产精品ⅴa在线观看| 国产探花在线播放| 欧美三级xxx| 国产情侣激情自拍| 国产视频综合在线| 在线āv视频| 国产精品欧美一区二区| 动漫av一区| 中文精品视频一区二区在线观看| 国产欧美短视频| 美女被艹视频网站| 国产清纯美女被跳蛋高潮一区二区久久w| 中文字幕另类日韩欧美亚洲嫩草| 日韩欧美精品免费在线| 精品人妻av一区二区三区| 国产亚洲精品久久久优势| av剧情在线观看| 成人亚洲激情网| 你微笑时很美电视剧整集高清不卡| 在线观看av的网址| 奇米亚洲午夜久久精品| 国产制服丝袜在线| 亚洲一区二区在线观看视频| 伊人成人在线观看| 亚洲欧美激情在线视频| av人人综合网| 99国产在线视频| 91av精品| 污污网站免费观看| 久久久久久久久久美女| 日韩美女一级片| 欧美大片一区二区三区| 黄页视频在线播放| 国产精品免费一区| 国产欧美日韩在线观看视频| 精品无码一区二区三区在线| 国产91丝袜在线播放| 伊人久久久久久久久久久久久久| 欧美三级韩国三级日本一级| 伦理片一区二区三区| 97视频色精品| 精品精品国产毛片在线看| 特级西西444| 国产主播一区二区| 老熟妻内射精品一区| 欧美日本一区二区在线观看| 精品99又大又爽又硬少妇毛片| 欧美一级片在线播放| 欧美色图婷婷| 俄罗斯av网站| 久久影音资源网| www.com亚洲| 亚洲系列中文字幕| a成人v在线| 亚洲精品国产一区| 毛片一区二区三区| 日韩av手机在线免费观看| 在线综合亚洲欧美在线视频| 黄色的网站在线观看| 91在线视频成人| 欧美成熟视频| 国产国语老龄妇女a片| 亚洲综合久久久久| 人妻精品一区一区三区蜜桃91| 午夜精品蜜臀一区二区三区免费| 国产在线播放精品| 日批视频在线免费看| 久久久精品国产免费观看同学| 波多野结衣午夜| 日韩少妇与小伙激情| 91精品国产自产观看在线| 国产免费一区二区三区四在线播放| 国产高清不卡一区二区| 亚洲国产精品成人无久久精品 | porn亚洲| 国产精品偷伦视频免费观看国产 | 久久精品一二三| 高潮无码精品色欲av午夜福利| 色久欧美在线视频观看| 欧美大片91| 成人av一级片| 欧美国产日韩在线观看| 国产精品久久久久久免费播放| 欧美插天视频在线播放| 亚洲人成网77777色在线播放 | 在线视频欧美一区| 成人国产视频在线观看| 色老头一区二区| 久久久久99精品久久久久| 欧美jizz19性欧美| 亚洲综合欧美激情| 尤物在线观看一区| 久久电影视频| 亚洲影视中文字幕| 久久国产99| 卡通动漫亚洲综合| 日韩精品中文字| 国产精品日本一区二区三区在线| 又大又硬又爽免费视频| 国产三级欧美三级日产三级99| 国产成人久久精品77777综合| 欧美性视频精品| 亚洲成av人片一区二区密柚| 日韩av一二区| 日韩一区二区三区视频在线| 第84页国产精品| 男人天堂网站在线| 中文欧美字幕免费| 天天综合天天综合| 91精品视频在线| 久久一区中文字幕|