青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎(chǔ)} {C++ 高級} {C#界面,C++核心算法} {設(shè)計(jì)模式} {C#基礎(chǔ)}

C++強(qiáng)大的背后


轉(zhuǎn)自:http://www.cnblogs.com/miloyip/archive/2010/09/17/1828449.html

在31年前(1979年),一名剛獲得博士學(xué)位的研究員,為了開發(fā)一個軟件項(xiàng)目發(fā)明了一門新編程語言,該研究員名為Bjarne Stroustrup,該門語言則命名為——C with classes,四年后改稱為C++。C++是一門通用編程語言,支持多種編程范式,包括過程式、面向?qū)ο?object-oriented programming, OP)、泛型(generic programming, GP),后來為泛型而設(shè)計(jì)的模版,被發(fā)現(xiàn)證明是圖靈完備的,因此使C++亦可支持模版元編程范式(template metaprogramming, TMP)。C++繼承了C的特色,既為高級語言,又含低級語言功能,可同時作為系統(tǒng)和應(yīng)用編程語言。

C++廣泛應(yīng)用在不同領(lǐng)域,使用者以數(shù)百萬計(jì)。根據(jù)近十年的調(diào)查,C++的流行程度約穩(wěn)定排行第3位(于C/Java之后)。 C++經(jīng)歷長期的實(shí)踐和演化,才成為今日的樣貌。1998年,C++標(biāo)準(zhǔn)委員會排除萬難,使C++成為ISO標(biāo)準(zhǔn)(俗稱C++98),當(dāng)中含非常強(qiáng)大的標(biāo)準(zhǔn)模版庫(standard template library, STL)。之后委員會在2005年提交了有關(guān)標(biāo)準(zhǔn)庫的第一個技術(shù)報告(簡稱TR1),并為下一個標(biāo)準(zhǔn)C++0x而努力。可惜C++0x并不能在200x年完成,各界希望新標(biāo)準(zhǔn)能于2011年內(nèi)出臺。

流行的C++編譯器中,微軟Visual C++ 2010已實(shí)現(xiàn)部分C++0x語法并加入TR1擴(kuò)充庫,而gcc對C++0x語法和庫的支持比VC2010更多。

應(yīng)否選擇C++

哪些程序適宜使用C++?

C++并非萬能丹,我按經(jīng)驗(yàn)舉出一些C++的適用時機(jī)。

  • C++適合構(gòu)造程序中需求較穩(wěn)定的部分,需求變化較大的部分可使用腳本語言;
  • 程序須盡量發(fā)揮硬件的最高性能,且性能瓶頸在于CPU和內(nèi)存;
  • 程序須頻繁地與操作系統(tǒng)或硬件溝通;
  • 程序必須使用C++框架/庫,如大部分游戲引擎(如Unreal/Source)及中間件(如Havok/FMOD),雖然有些C++庫提供其他語言的綁定,但通常原生的API性能最好、最新;
  • 項(xiàng)目中某個目標(biāo)平臺只提供C++編譯器的支持。

按應(yīng)用領(lǐng)域來說,C++適用于開發(fā)服務(wù)器軟件、桌面應(yīng)用、游戲、實(shí)時系統(tǒng)、高性能計(jì)算、嵌入式系統(tǒng)等。

使用C++還是C?

C++和C的設(shè)計(jì)哲學(xué)并不一樣,兩者取舍不同,所以不同的程序員和軟件項(xiàng)目會有不同選擇,難以一概而論。與C++相比,C具備編譯速度快、容易學(xué)習(xí)、顯式描述程序細(xì)節(jié)、較少更新標(biāo)準(zhǔn)(后兩者也可同時視為缺點(diǎn))等優(yōu)點(diǎn)。在語言層面上,C++包含絕大部分C語言的功能(例外之一,C++沒有C99的變長數(shù)組VLA),且提供OOP和GP的特性。但其實(shí)用C也可實(shí)現(xiàn)OOP思想,亦可利用宏去實(shí)現(xiàn)某程度的GP,只不過C++的語法能較簡潔、自動地實(shí)現(xiàn)OOP/GP。C++的RAII(resource acquisition is initialization,資源獲取就是初始化)特性比較獨(dú)特,C/C#/Java沒有相應(yīng)功能。回顧歷史,Stroustrup開發(fā)的早期C++編譯器Cpre/Cfront是把C++源代碼翻譯為C,再用C編譯器編譯的。由此可知,C++編寫的程序,都能用等效的C程序代替,但C++在語言層面上提供了OOP/GP語法、更嚴(yán)格的類型檢查系統(tǒng)、大量額外的語言特性(如異常、RTTI等),并且C++標(biāo)準(zhǔn)庫也較豐富。有時候C++的語法可使程序更簡潔,如運(yùn)算符重載、隱式轉(zhuǎn)換。但另一方面,C語言的API通常比C++簡潔,能較容易供其他語言程序調(diào)用。因此,一些C++庫會提供C的API封裝,同時也可供C程序調(diào)用。相反,有時候也會把C的API封裝成C++形式,以支持RAII和其他C++庫整合等。

為何C++性能可優(yōu)于其他語言?

相對運(yùn)行于虛擬機(jī)語言(如C#/Java),C/C++直接以靜態(tài)形式把源程序編譯為目標(biāo)平臺的機(jī)器碼。一般而言,C/C++程序在編譯及鏈接時可進(jìn)行的優(yōu)化最豐富,啟動時的速度最快,運(yùn)行時的額外內(nèi)存開銷最少。而C/C++相對動態(tài)語言(如Python/Lua)也減少了運(yùn)行時的動態(tài)類型檢測。此外,C/C++的運(yùn)行行為是確定的,且不會有額外行為(例如C#/Java必然會初始化變量),也不會有如垃圾收集(GC)而造成的不確定性延遲,而且C/C++的數(shù)據(jù)結(jié)構(gòu)在內(nèi)存中的布局也是確定的。有時C++的一些功能會使程序性能優(yōu)于C,當(dāng)中以內(nèi)聯(lián)和模版最為突出,這兩項(xiàng)功能使C++標(biāo)準(zhǔn)庫的sort()通常比C標(biāo)準(zhǔn)庫的qsort()快多倍(C可用宏或人手編碼去解決此問題)。另一方面,C/C++能直接映射機(jī)器碼,之間沒有另一層中間語言,因此可以做底層優(yōu)化,例如使用內(nèi)部(intrinsic)函數(shù)和嵌入?yún)R編語言。然而,許多C++的性能優(yōu)點(diǎn)并非免費(fèi)午餐,代價包括較長的編譯鏈接時間和較易出錯,因而增加開發(fā)時間和成本,這點(diǎn)稍后補(bǔ)充。

我進(jìn)行了一個簡單全局渲染性能測試(512x512像素,每像素10000個采樣),C++ 1小時36分、Java 3小時18分、Python約18天、Ruby約351天。評測方式和其他語言的結(jié)果詳見博文

C++常見問題

C++源代碼跨平臺嗎?

C++有不錯的跨平臺能力,但由于直接映射硬件,因性能優(yōu)化的關(guān)系,跨平臺能力不及Java及多數(shù)腳本語言。然而,實(shí)踐跨平臺的C++軟件還是可行的,但須注意以下問題:

  • C++標(biāo)準(zhǔn)沒有規(guī)定原始數(shù)據(jù)類型(如int)的大小,需要特定大小的類型時,可自訂類型(如int32_t),同時對任何類型使用sizeof()而不假設(shè)其大小;
  • 字節(jié)序(byte order)按CPU有所不同,特別要注意二進(jìn)制輸入輸出、reinterpret_cast法;
  • 原始數(shù)據(jù)和結(jié)構(gòu)類型的地址對齊有差異;
  • 編譯器提供的一些編譯器或平臺專用擴(kuò)充指令;
  • 避免作應(yīng)用二進(jìn)制接口(application binary interface, ABI)的假設(shè),例如調(diào)用函數(shù)時參數(shù)的取值順序在C/C++中沒定義,在C++中也不可隨便假設(shè)RTTI/虛表等實(shí)現(xiàn)方式。

總括而言,跨平臺C++軟件可在頭文件中用宏檢測編譯器和平臺,再用宏、typedef、自定平臺相關(guān)實(shí)現(xiàn)等方法去實(shí)踐跨平臺,C++標(biāo)準(zhǔn)不會提供這類幫助。

C++程序容易崩潰?

和許多語言相比,C/C++提供不安全的功能以最優(yōu)化性能,有可能造成崩潰。但要注意,很多運(yùn)行時錯誤,如向空指針/引用解引用、數(shù)組越界、堆棧溢出等,其他語言也會報錯或拋出異常,這些都是程序問題,而不是語言本身的問題。有些意見認(rèn)為,出現(xiàn)這類運(yùn)行時錯誤,應(yīng)該盡量寫入日志并立即崩潰,不該讓程序繼續(xù)運(yùn)行,以免造成更大的影響(例如程序繼續(xù)把內(nèi)存中錯誤的數(shù)據(jù)覆寫文件)。若要容錯,可按業(yè)務(wù)把程序分割為多進(jìn)程,像Chrome或使用fork()的形式。然而,C++有許多機(jī)制可以減少錯誤,例如以string代替C字符串;以vectorarray(TR1)代替原始數(shù)組(有些實(shí)現(xiàn)可在調(diào)試模式檢測越界);使用智能指針也能減少一些原始指針的問題。另外,我最常遇到的Bug,就是沒有初始化成員變量,有時會導(dǎo)致崩潰,而且調(diào)試版和發(fā)行版的行為可能不同。

C++要手動做內(nèi)存管理?

C++同時提供在堆棧上的自動局部變量,以及從自由存儲(free store)分配的對象。對于后者,程序員需手動釋放,或使用不同的容器和智能指針。 C++程序員經(jīng)常進(jìn)一步優(yōu)化內(nèi)存,自定義內(nèi)存分配策略以提升效能,例如使用對象池、自定義的單向/雙向堆棧區(qū)等。雖然C++0x還沒加入GC功能,但也可以自行編寫或使用現(xiàn)成庫。此外,C/C++也可以直接使用操作系統(tǒng)提供的內(nèi)存相關(guān)功能,例如內(nèi)存映射文件、共享內(nèi)存等。

使用C++常要重造輪子?

我曾參與的C++項(xiàng)目,都會重造不少標(biāo)準(zhǔn)庫已提供的功能,此情況在其他語言中較少出現(xiàn)。我試圖分析個中原因。首先,C++標(biāo)準(zhǔn)庫相對很多語言來說是貧乏的,各開發(fā)者便會重復(fù)地制造自訂庫。從另一個角度看,C++標(biāo)準(zhǔn)庫是用C++編寫的(很多其他語言不用自身而是用C/C++去編寫庫),在能力和性能上,自訂庫和標(biāo)準(zhǔn)庫并無本質(zhì)差別;另外,標(biāo)準(zhǔn)庫為通用而設(shè),對不同平臺及多種使用需求作取舍,性能上有所影響,例如EA公司就曾發(fā)表自制的EASTL規(guī)格,描述游戲開發(fā)方面對STL的性能及功能需求的特點(diǎn);此外,多個C++庫一起使用,經(jīng)常會因規(guī)范不同而引起沖突,又或功能重疊,所以項(xiàng)目可能須自行開發(fā),或引入其他庫的概念或?qū)崿F(xiàn)(如Boost/TR1/Loki),改寫以符合項(xiàng)目規(guī)范。

C++編譯速度很慢?

錯,是非常慢。我認(rèn)為C++可能是實(shí)用程序語言中編譯速度最慢的。此問題涉及C++沿用C的編譯鏈接方式,又加入了復(fù)雜的類/泛型聲明和內(nèi)聯(lián)機(jī)制,使編譯時間倍增。在C++對編譯方法改革之前(如module提案),可使用以下技巧改善:第一,使用pimpl手法,因性能損耗應(yīng)用于調(diào)用次數(shù)不多的類;第二,僅包含必要頭文件,并盡量使用及提供前置聲明版本的頭文件(如iosfwd);第三采用基于接口的設(shè)計(jì),但須注意虛函數(shù)調(diào)用成本;第四,采用unity build,即把多個cpp文件結(jié)合在一個編譯單元進(jìn)行編譯;第五,采用分布式生成系統(tǒng)如IncrediBuild

C++缺乏什么功能?

雖然C++已經(jīng)非常復(fù)雜,但仍缺少很多常見功能。 C++0x作出了不少改善,例如語言方面加入Lambda函數(shù)、閉包、類型推導(dǎo)聲明等,而庫方面則加入正則表達(dá)式、采用哈希表的unordered_set/unordered_map、引用計(jì)數(shù)智能指針shared_ptr/weak_ptr等。但最值得留意的是C++0x引入多線程的語法和庫功能,這是C++演進(jìn)的一大步。然而,模組、GC、反射機(jī)制等功能雖有提案,卻未加進(jìn)C++0x。

C++使用建議

為應(yīng)用挑選特性集

我同意Stroustrup關(guān)于使用C++各種技術(shù)的回應(yīng):“你可以做,不意味著你必須這么做。(Just because you can do it, doesn't mean that you have to.)” C++充滿豐富的特性,但同時帶來不同問題,例如過分復(fù)雜、編譯及運(yùn)行性能的損耗。一般可考慮是否使用多重繼承、異常、RTTI,并調(diào)節(jié)使用模版及模版元編程的程度。使用過分復(fù)雜的設(shè)計(jì)和功能,可能會令部分團(tuán)隊(duì)成員更難理解和維護(hù)。

為團(tuán)隊(duì)建立編程規(guī)范

C++的編碼自由度很高,容易編寫風(fēng)格迥異的代碼,C++本身也沒有定義一些標(biāo)準(zhǔn)規(guī)范。而且,C++的源文件物理構(gòu)成,較許多語言復(fù)雜。因此,除了決定特性集,每個團(tuán)隊(duì)?wèi)?yīng)建立一套編程規(guī)范,包括源文件格式(可使用文件模版)、花括號風(fēng)格。

盡量使用C++風(fēng)格而非C風(fēng)格

由于C++有對C兼容的包袱,一些功能可以使用C風(fēng)格實(shí)現(xiàn),但最好使用C++提供的新功能。最基本的是盡量以具名常量、內(nèi)聯(lián)函數(shù)和泛型取代宏,只把宏用在條件式編譯及特殊情況。舊式的C要求局部變量聲明在作用域開端,C++則無此限制,應(yīng)把變量聲明盡量置于鄰近其使用的地方,for()的循環(huán)變量聲明可置于for的括號內(nèi)。 C++中能加強(qiáng)類型安全的功能應(yīng)盡量使用,例如避免“萬能”指針void *,而使用個別或泛型類型;用bool而非int表示布爾值;選用4種C++ cast關(guān)鍵字代替簡單的強(qiáng)制轉(zhuǎn)換。

結(jié)合其他語言

如前文所述,C++并非適合所有應(yīng)用情境,有時可以混合其他語言使用,包括用C++擴(kuò)展其他語言,或在C++程序中嵌入腳本語言引擎。對于后者,除了使用各種腳本語言的專門API,還可使用BoostSWIG作整合。

C++學(xué)習(xí)建議

C++缺點(diǎn)之一,是相對許多語言復(fù)雜,而且難學(xué)難精。許多人說學(xué)習(xí)C語言只需一本K&R《C程序設(shè)計(jì)語言》即可,但C++書籍卻是多不勝數(shù)。我是從C進(jìn)入C++,皆是靠閱讀自學(xué)。在此分享一點(diǎn)學(xué)習(xí)心得。個人認(rèn)為,學(xué)習(xí)C++可分為4個層次:

由于我主要是應(yīng)用C++,大約只停留于第二、三個層次。然而,C++只是軟件開發(fā)的一環(huán)而已,單憑語言并不能應(yīng)付業(yè)務(wù)和工程上的問題。建議讀者不要強(qiáng)求幾年內(nèi)“徹底學(xué)會C++的知識”,到達(dá)第二層左右便從工作實(shí)戰(zhàn)中汲取經(jīng)驗(yàn),有興趣才慢慢繼續(xù)學(xué)習(xí)更高層次的知識。雖然學(xué)習(xí)C++有難度,但也是相當(dāng)有趣且有滿足感的。

數(shù)十年來,C++雖有起伏,但她依靠其使用者而不斷得到頑強(qiáng)的生命力,相信在我退休之前都不會與她分離,也希望更進(jìn)一步了解她,與她走進(jìn)未來。


本文原于《程序員》2010年8月刊揭載。

posted on 2010-09-18 10:07 夢在天涯 閱讀(25860) 評論(7)  編輯 收藏 引用 所屬分類: CPlusPlus

評論

# re: C++強(qiáng)大的背后 2010-09-18 10:40 陳梓瀚(vczh)

ABI和RTTI是完全可以假設(shè)的。源代碼只要不使用特定API就能跨平臺,只要你在某一個特定平臺上的所有程序(exe和相關(guān)的dll)都嚴(yán)格使用同一個版本的編譯器編譯,那就不會有問題。C++能跨平臺,但這并不代表平臺之間是兼容的。  回復(fù)  更多評論   

# re: C++強(qiáng)大的背后 2010-09-18 10:40 陳梓瀚(vczh)

而且因?yàn)镃++無敵復(fù)雜,所以做出“使用C++”的這個決定是要負(fù)責(zé)任的,因此程序猿有義務(wù)學(xué)好C++,而不是到了出事的時候抱怨。做不到就去用別的語言。  回復(fù)  更多評論   

# re: C++強(qiáng)大的背后 2010-09-18 11:01 空明流轉(zhuǎn)

@陳梓瀚(vczh)
跨平臺和平臺兼容并不是一個概念。  回復(fù)  更多評論   

# re: C++強(qiáng)大的背后 2010-09-18 15:20 陳梓瀚(vczh)

@空明流轉(zhuǎn)
恩,我的意思就是,因?yàn)椴皇且粋€概念,所以ABI和RTTI的不兼容是可以忽略的。程序員有責(zé)任將他們編譯成互相兼容的二進(jìn)制文件。  回復(fù)  更多評論   

# re: C++強(qiáng)大的背后 2010-09-18 21:49 lookup

我對EASTL有興趣,誰有這個代碼?  回復(fù)  更多評論   

# re: C++強(qiáng)大的背后 2010-09-19 00:18 Milo Yip

雜誌社也想把標(biāo)題改做C++強(qiáng)大"的"背後,最終都說服了。樓主請高抬貴手……  回復(fù)  更多評論   

# re: C++強(qiáng)大的背后 2011-07-07 22:33 放屁阿狗

c++只是個工具,思想是最重要的  回復(fù)  更多評論   

公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計(jì)

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1817630
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美在线免费视频| 亚洲综合色噜噜狠狠| 国产伦理一区| 亚洲毛片视频| 亚洲高清资源| 欧美一区2区视频在线观看 | 99热免费精品在线观看| 先锋资源久久| 欧美一进一出视频| 欧美日韩免费视频| 最新中文字幕亚洲| 亚洲电影有码| 久久综合精品国产一区二区三区| 久久av一区二区| 国产精品区一区二区三| 一本色道久久综合亚洲精品不卡| 亚洲精品日本| 欧美波霸影院| 欧美激情一区在线| 亚洲国产精品久久91精品| 欧美在线视频免费播放| 欧美在线视频a| 国产欧美日韩精品丝袜高跟鞋| 99精品欧美一区| 亚洲午夜影视影院在线观看| 欧美视频一区在线| 欧美激情中文字幕一区二区| 亚洲第一主播视频| 久久亚洲美女| 欧美电影免费观看高清| 在线日韩欧美| 欧美大片91| 亚洲蜜桃精久久久久久久| 亚洲视频1区| 国产精品劲爆视频| 亚洲欧美日本日韩| 久久天天躁夜夜躁狠狠躁2022| 狠狠88综合久久久久综合网| 久久久久9999亚洲精品| 免费久久99精品国产自| 91久久久一线二线三线品牌| 欧美激情成人在线| 一区二区三区国产在线| 午夜在线电影亚洲一区| 国产一区日韩一区| 免费精品99久久国产综合精品| 亚洲高清av| 亚洲婷婷在线| 国产日韩欧美在线观看| 久久精品国产一区二区三区 | 亚洲欧美日韩精品久久亚洲区| 国产精品视区| 另类激情亚洲| 正在播放欧美视频| 久久精品观看| 91久久综合亚洲鲁鲁五月天| 欧美日韩中文字幕日韩欧美| 午夜在线精品| 亚洲国产一区在线观看| 午夜电影亚洲| 亚洲欧洲在线看| 国产精品私房写真福利视频| 久久免费少妇高潮久久精品99| 亚洲精品你懂的| 亚洲一区制服诱惑| 在线精品视频一区二区三四| 欧美日韩一区在线观看视频| 久久精品av麻豆的观看方式 | aa级大片欧美三级| 久久天天狠狠| 亚洲男人的天堂在线aⅴ视频| 国模叶桐国产精品一区| 欧美区一区二区三区| 久久国产精品久久久久久电车| 亚洲欧洲在线播放| 免费91麻豆精品国产自产在线观看| 一本久道久久综合中文字幕| 国产一区二区在线观看免费| 欧美日韩免费在线观看| 麻豆成人av| 久久av一区二区三区| 亚洲私拍自拍| 91久久久久久| 欧美成年人网站| 久久久久国色av免费看影院| 亚洲一区二区不卡免费| 亚洲国产日韩一区| 国内精品久久久久久久影视麻豆| 欧美视频观看一区| 欧美国产日本韩| 美脚丝袜一区二区三区在线观看 | 在线中文字幕一区| 欧美国产日韩一区二区三区| 久久久久久久久久久一区| 亚洲一区二区三区高清 | 亚洲一区二区三区四区中文| 在线观看成人av| 国产亚洲一区二区精品| 国产精品嫩草影院av蜜臀| 欧美日本国产在线| 欧美搞黄网站| 欧美精品久久久久久| 欧美大片18| 欧美成人一区二区在线| 免费成人性网站| 男男成人高潮片免费网站| 久久久久久久久久久久久女国产乱| 欧美在线不卡| 久久成人精品| 久久久久国产精品厨房| 久久精品一本| 久久综合中文字幕| 欧美~级网站不卡| 免费在线观看精品| 欧美激情一区二区在线| 欧美日韩www| 国产精品福利在线| 国产精品视频一二| 国产亚洲精品bt天堂精选| 国内精品视频在线观看| 在线观看国产日韩| 亚洲精选国产| 亚洲一区二区精品在线| 羞羞色国产精品| 免费不卡中文字幕视频| 亚洲国产高清视频| 亚洲免费观看高清完整版在线观看| 一二三四社区欧美黄| 亚洲欧美在线另类| 久久精品国产96久久久香蕉| 老司机一区二区三区| 欧美精品一级| 国产欧美二区| 在线观看欧美亚洲| 夜夜嗨av一区二区三区| 校园春色国产精品| 免费看亚洲片| 99re这里只有精品6| 性做久久久久久久久| 久久嫩草精品久久久久| 欧美日韩免费观看一区| 国产日韩欧美高清| 亚洲免费播放| 久久国产视频网站| 亚洲国内高清视频| 亚洲欧美日韩综合国产aⅴ| 久久亚洲春色中文字幕| 欧美日韩国产精品成人| 韩国女主播一区| 一区二区三区高清视频在线观看| 久久精彩免费视频| 亚洲欧洲精品一区二区三区| 亚洲免费影院| 欧美大片一区二区| 国产一区二区三区日韩| 一本色道久久综合狠狠躁篇的优点 | 国产午夜精品美女视频明星a级| 亚洲国产一区二区三区高清| 午夜精品久久久久久久99黑人| 欧美77777| 午夜精品av| 欧美三级电影网| 亚洲成色最大综合在线| 欧美一区二区啪啪| 亚洲另类视频| 免费不卡视频| 一区二区三区在线视频观看| 亚洲欧美日韩成人| 91久久精品久久国产性色也91| 欧美亚洲专区| 国产精品成人免费精品自在线观看| 亚洲第一精品夜夜躁人人躁| 欧美在线播放视频| 一区二区三区欧美亚洲| 欧美精品1区2区| 亚洲经典视频在线观看| 久久久噜噜噜久久人人看| 亚洲综合欧美日韩| 国产精品久久国产愉拍| 一区二区三区av| 亚洲国产婷婷综合在线精品 | 国产精品久久97| 一区二区三区 在线观看视频| 蜜乳av另类精品一区二区| 午夜日韩福利| 国产欧美 在线欧美| 亚洲欧美久久| 亚洲视频你懂的| 欧美性jizz18性欧美| 亚洲视频免费在线观看| 亚洲精品免费在线播放| 欧美激情精品久久久久久黑人| 亚洲第一视频网站| 欧美.www| 久久综合色一综合色88| 亚洲经典三级| 亚洲精品女av网站| 欧美激情成人在线| 一本久久知道综合久久| 99国产一区|