• <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>

            yutou's blog

            請(qǐng)不要做浮躁的人,請(qǐng)熱愛(ài)C++。
            posts - 14, comments - 1, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            2008年4月20日

            du8.com的書..很不錯(cuò)..但是要VIP,,,又是VIP

            http://pic.du8.com/onlineimg/31/bp/sep/2003/31bp.0001.png

            這本書的地址是從這里開始的,,,0002 0003 …0100…N

            posted @ 2008-04-20 17:52 yutou 閱讀(229) | 評(píng)論 (0)編輯 收藏

            2008年4月10日

            很好的一個(gè)小冊(cè)子,不大不小,卻是一個(gè)學(xué)習(xí)的好幫手.放此收藏.

            感謝LXH2002的收集整理.              ;-)

            posted @ 2008-04-10 22:55 yutou 閱讀(377) | 評(píng)論 (1)編輯 收藏

            2008年4月7日

            int i = 0;
            int *= &i ,*pk;

            pk 
            = p;
            delete pk;  
            //錯(cuò)誤
            //不能delete一個(gè)不是new分配的空間

            int i = 0;

            new *= &i;
            new *pk = p;

            delete p;  
            //正確
            //p與pk指向同一個(gè)內(nèi)存區(qū)域,而這個(gè)內(nèi)存區(qū)域是由new產(chǎn)生

            posted @ 2008-04-07 17:24 yutou 閱讀(235) | 評(píng)論 (0)編輯 收藏

            在if else if 使用中出現(xiàn)的一點(diǎn)問(wèn)題,編譯器報(bào)出“在return的前面缺少 ';' ”

            int compare( int shu_size ,const vector <int> &_vec )
            {
              
            int vec_size = int(_vec.size());

              
            if( shu_size == vec_size ) return shu_size;
              
            else if( shu_size < vec_size )  return shu_size;
              
            else ( shu_size > vec_size )  return vec_size;
            }


            //更改后通過(guò)編譯的代碼
            int compare( int shu_size ,const vector <int> &_vec )
            {
                
            int vec_size = int(_vec.size());
                
            if( shu_size == vec_size ) vec_size = shu_size;
                
            return vec_size;
            }

            posted @ 2008-04-07 17:06 yutou 閱讀(216) | 評(píng)論 (0)編輯 收藏

            code:

            //出現(xiàn)error C2440
            bool is_equal( const vector <int> &ivec )  //vector對(duì)象的常引用
            {
                 
            for( vector <int>::iterator it = ivec.begin() ;it != ivec.end() ;++it )  //這里使用的是iterator
                   {
                        ……
                    }

            }



             

            //正確的使用方法
            bool is_equal( const vector <int> &ivec )  //vector對(duì)象的常引用
            {
                 
            for( vector <int>::const_iterator it = ivec.begin() ;it != ivec.end() ;++it )  //這里使用的是const_iterator
                   {
                        ……
                    }

            }



            ps:標(biāo)準(zhǔn)庫(kù)相當(dāng)復(fù)雜!

            posted @ 2008-04-07 16:58 yutou 閱讀(402) | 評(píng)論 (0)編輯 收藏

            2008年4月6日

            信息來(lái)源:http://blog.21ic.com/user1/2949/archives/2007/35599.html

            一個(gè)定義為volatile的變量是說(shuō)這變量可能會(huì)被意想不到地改變,這樣,編譯器就不會(huì)去假設(shè)這個(gè)變量的值了。精確地說(shuō)就是,優(yōu)化器在用到這個(gè)變量時(shí)必須每次都小心地重新讀取這個(gè)變量的值,而不是使用保存在寄存器里的備份。下面是volatile變量的幾個(gè)例子:
                1). 并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器)
                2). 一個(gè)中斷服務(wù)子程序中會(huì)訪問(wèn)到的非自動(dòng)變量(Non-automatic variables)
                3). 多線程應(yīng)用中被幾個(gè)任務(wù)共享的變量
                回答不出這個(gè)問(wèn)題的人是不會(huì)被雇傭的。我認(rèn)為這是區(qū)分C程序員和嵌入式系統(tǒng)程序員的最基本的問(wèn)題。嵌入式系統(tǒng)程序員經(jīng)常同硬件、中斷、RTOS等等打交道,所用這些都要求volatile變量。不懂得volatile內(nèi)容將會(huì)帶來(lái)災(zāi)難。
                假設(shè)被面試者正確地回答了這是問(wèn)題(嗯,懷疑這否會(huì)是這樣),我將稍微深究一下,看一下這家伙是不是直正懂得volatile完全的重要性。
                1). 一個(gè)參數(shù)既可以是const還可以是volatile嗎?解釋為什么。
                2). 一個(gè)指針可以是volatile 嗎?解釋為什么。
                3). 下面的函數(shù)有什么錯(cuò)誤:
                     int square(volatile int *ptr)
                     {
                          return *ptr * *ptr;
                     }
                下面是答案:
                1). 是的。一個(gè)例子是只讀的狀態(tài)寄存器。它是volatile因?yàn)樗赡鼙灰庀氩坏降馗淖儭K莄onst因?yàn)槌绦虿粦?yīng)該試圖去修改它。
                2). 是的。盡管這并不很常見。一個(gè)例子是當(dāng)一個(gè)中服務(wù)子程序修該一個(gè)指向一個(gè)buffer的指針時(shí)。
                3). 這段代碼的有個(gè)惡作劇。這段代碼的目的是用來(lái)返指針*ptr指向值的平方,但是,由于*ptr指向一個(gè)volatile型參數(shù),編譯器將產(chǎn)生類似下面的代碼:
                int square(volatile int *ptr) 
                {
                     int a,b;
                     a = *ptr;
                     b = *ptr;
                     return a * b;
                 }
                由于*ptr的值可能被意想不到地該變,因此a和b可能是不同的。結(jié)果,這段代碼可能返不是你所期望的平方值!正確的代碼如下:
                 long square(volatile int *ptr) 
                 {
                        int a;
                        a = *ptr;
                        return a * a;
                 }

            posted @ 2008-04-06 17:29 yutou 閱讀(259) | 評(píng)論 (0)編輯 收藏

            2008年3月10日

            By SmartPtr(http://www.shnenglu.com/SmartPtr/)

            這幾天工作時(shí)碰到一個(gè)C++的編譯錯(cuò)誤(我使用的是Visual C++ 7.0),說(shuō)是有一個(gè)類重復(fù)定義,仔細(xì)想想我們的這個(gè)項(xiàng)目也是做了好幾個(gè)Release了, 內(nèi)部代碼應(yīng)該不會(huì)有這樣的低級(jí)錯(cuò)誤, 真把類型給重復(fù)定義了,檢查結(jié)果正如我預(yù)料的一樣。 就這樣, 我左右沒(méi)找到原因,被一個(gè)編譯錯(cuò)誤給卡在那里了。(在我的概念中, 程序錯(cuò)誤的等級(jí)為:編譯錯(cuò)誤->鏈接錯(cuò)誤->邏輯錯(cuò)誤, 此錯(cuò)誤屬于最低級(jí) )。這時(shí)我仔細(xì)看了一下錯(cuò)誤提示, 發(fā)現(xiàn)重復(fù)定義是由于從兩個(gè)不同的路徑包含了同一個(gè)頭文件而引起的,同事也建議從另外一個(gè)路徑打開工程試試, 這才慢慢發(fā)現(xiàn)了原因。這個(gè)原因可能有些拗口,而事實(shí)上要出現(xiàn)這種錯(cuò)誤也有些曲折 讓我從不同情況下的類型重定義來(lái)解釋一下吧。

            我總結(jié)的C++中類型重定義情況有三。

            1 沒(méi)有在文件頭加#pragma once指示符。

            Type1.h:  #pragma once的作用是保證本文件只被編譯一次,如果沒(méi)有在Type1.h中加這句話那么在main.cpp里面包含了兩次Type1.h 就相當(dāng)于在main.cpp里面定義了兩次Type類, 自然就是類型重定義了。

            //#pragma once
            class Type
            {
            }
            ;

            Main.cpp:
            #include "Type1.h"
            #include 
            "Type1.h"
            int main(int argc, char *argv[])
            {
               
            return 1;
            }

            2 兩個(gè)不同的頭文件中定義了相同的類型(均有#pragma once

            Type1.h:Type2.h:Main.cpp:

            #pragma once
            class Type
            {

            }
            ;


            #pragma once
            class Type
            {     

            }
            ;


            這里main.cpp中同時(shí)包含了Type1.h, Type2.h兩個(gè)頭文件, 雖然其文件頭都有#pragma once,但因?yàn)槭遣煌奈募?/span> 預(yù)編譯器還是會(huì)兩次把Type類的定義放在Main.cpp中, 所以也會(huì)出現(xiàn)了重定義。

            #include "Type1.h"
            #include 
            "Type2.h"
            int main(int argc, char *argv[])
            {
               
            return 1;
            }


            3 從兩個(gè)不同的路徑包含了同一個(gè)頭文件

              前面兩種是比較常見, 也是比較容易解決的情況, 而這里要講的第三種情況, 比較少見, 而且一般出現(xiàn)在有虛擬映射盤的時(shí)候。(這樣才能做到從兩個(gè)不同的路徑包含同一個(gè)頭文件), 其他會(huì)在什么時(shí)候出現(xiàn), 我還沒(méi)想到, 知道的朋友頂一下:)。下面我來(lái)分析一下:
            1 VC工程在D:\Test目錄下。
            2 映射虛擬盤XD:\Test.
            不熟悉的網(wǎng)友可以按此操作: 開始->運(yùn)行->在運(yùn)行窗口輸入:cmd->cmd窗口輸入:
            Subst X: D:\Test->回車。
            3 該工程有文件Type1.h, main.cpp

            Type1.h:

            #pragma once
            class Type
            {

            }
            ;

            Main.cpp:

            main.cpp這樣包含了兩個(gè)頭文件, 從本質(zhì)上來(lái)講, 它們都對(duì)應(yīng)于物理盤D:\Test下的文件Type1.h, 是同一個(gè)文件。但在不同的操作下, VC對(duì)其有不同的解釋。#include "X:\Type1.h"用的是絕對(duì)路徑, 自然沒(méi)有什么異議, #include "Type1.h"卻有些變化:
            *假如我從D:\Test\下打開工程, 那么#include "Type1.h"其實(shí)就是#include "D:\Test\Type1.h"
            *假如從X:\下打開工程,那么#include "Type1.h"就解釋為#include "X:\Type1.h"

            #include "Type1.h"
            #include 
            "X:Type1.h"
            int main(int argc, char *argv[])
            {
               
            return 1;
            }

            這里我們?cè)?

            4 D:\Test下打開工程, 編譯, 出現(xiàn)類型Type重復(fù)定義錯(cuò)誤

            這種情況下,main.cpp預(yù)編譯為:

            Main.cpp:

            只保證本文件被編譯一次, 這里VC將其認(rèn)為是兩個(gè)不同的文件, 所以都要編譯, 出現(xiàn)編譯錯(cuò)誤自然也就不奇怪了。
               
            當(dāng)然, 這里如果從X:\ 下打開工程的話,VC就會(huì)認(rèn)為都是從X:\Type1.h下包含這個(gè)文件,#pragma once起到了作用, 也就不會(huì)出現(xiàn)類型重定義了

            #include "D:TestType1.h"
            #include 
            "X:Type1.h"
            int main(int argc, char *argv[])
            {
               
            return 1;
            }

             

            #pragma once

            總結(jié)

            我在VC7, VC8,Dev C++中都測(cè)試了第三種情況, 發(fā)現(xiàn)只有Dev C++是可以通過(guò)編譯的。這可能是微軟VC#pragma once還不夠智能吧,輕易的被Windows的虛擬盤給蒙蔽了雙眼, 看不到其本質(zhì)(只是猜測(cè), 或許VC這么處理是有其他用意的)。

            因?yàn)樵谏源笠稽c(diǎn)的工程開發(fā)中, 我們一般都會(huì)用虛擬盤來(lái)方便工作, 一是訪問(wèn)快捷,簡(jiǎn)化了路徑, 二是因?yàn)槎嗳藚f(xié)同開發(fā),我們一般希望大家源代碼路徑相同,但我們不應(yīng)強(qiáng)制要求大家都把源代碼放死在某一目錄下, 這時(shí)把你放源代碼的路徑映射為一個(gè)虛擬盤(比如說(shuō)統(tǒng)一為X:)就能把大家的代碼路徑統(tǒng)一起來(lái)了。但是另一方面,有了虛擬盤, 就為出現(xiàn)類型重定義提供了條件, 以下是我得出的兩個(gè)解決方法:

            1
            拋棄#pragma once使用古老但集穩(wěn)定性與移植性于一身的

            來(lái)保證頭文件只被編譯一次。這樣不管是包含兩個(gè)相同的文件,還是包含兩個(gè)不同的文件,或是包兩個(gè)文件相同但路徑不同的文件, 只要_XXX_H被定義過(guò), 就不會(huì)再編譯那個(gè)編譯(但這里我們要保證_XXX_H的唯一性, 如果兩個(gè)不同的頭文件里用了同一_XXX_H,是會(huì)出問(wèn)題的)

             

            #ifndef _XXX_H
            #define _XXX_H


            #endif

            2 在包含頭文件時(shí),不要使用絕對(duì)路徑, 哪怕那是虛擬盤的絕對(duì)路徑。

            posted @ 2008-03-10 16:32 yutou 閱讀(473) | 評(píng)論 (0)編輯 收藏

            yutou

            2008年3月10日

            如圖:    需求分析 => 可行性分析 => 實(shí)施具體方案 => 維護(hù)與支持

            posted @ 2008-03-10 00:11 yutou 閱讀(171) | 評(píng)論 (0)編輯 收藏

            2008年3月9日

            用可行性研究論證您的項(xiàng)目

             

            Scott W. Ambler
            總裁,Ronin International
            2000
            8 24
            本文來(lái)自 http://www.ibm.com/developerworks/tw/library/tip-justify/



                           在任何項(xiàng)目的開始階段,項(xiàng)目組都要為項(xiàng)目的總體工作做一些準(zhǔn)備工作。在 Rational Unified ProcessRUP)和面向?qū)ο蟮能浖^(guò)程(OOSP)中,這個(gè)階段稱為啟動(dòng)階段。本周,我們考慮如何確定一個(gè)項(xiàng)目是否值得啟動(dòng)。本文由《Process Patterns》的第五章改編而來(lái)。

                           啟動(dòng)項(xiàng)目的一個(gè)重要環(huán)節(jié)就是對(duì)項(xiàng)目進(jìn)行論證;也就是說(shuō),確定是否應(yīng)該立項(xiàng)。遺憾的是,論證經(jīng)常是完成得最差的一項(xiàng)任務(wù)。85% 以上的大型項(xiàng)目以失敗告終(請(qǐng)參閱參考資源中的《Patterns of Software Systems Failure and Success》一書),這一事實(shí)表明大多數(shù)項(xiàng)目在論證階段就應(yīng)該中止,而不是在為其作了大量投資(并造成損失)之后。論證階段的主要目標(biāo)是,確定項(xiàng)目的最佳實(shí)施方案,如果存在這樣的方案,還要論證它為什么是最佳的。

                           圖1描繪了針對(duì)論證階段的過(guò)程模型的解決方案。論證項(xiàng)目時(shí)需要完成幾項(xiàng)工作,論證項(xiàng)目的主要結(jié)果便是可行性研究。為了進(jìn)行可行性研究,您將重復(fù)下列步驟:

                       · 確定可選的實(shí)施方案

                       · 評(píng)估每項(xiàng)可選方案的經(jīng)濟(jì)可行性

                       · 評(píng)估每項(xiàng)可選方案的技術(shù)可行性

                       · 評(píng)估每項(xiàng)可選方案的運(yùn)行可行性

                       · 選擇一項(xiàng)可選方案

                       · 確定潛在的風(fēng)險(xiǎn)

             

            1. 論證階段的過(guò)程模型


             

             

            確定可選的實(shí)施方案


            可行性研究的第一階段是確定項(xiàng)目潛在的可選實(shí)施方案。與流行的觀點(diǎn)正好相反,實(shí)現(xiàn)應(yīng)用時(shí)總有多種選擇,包括什么都不做、使用多種技術(shù)實(shí)現(xiàn)它、購(gòu)買一種類似的系統(tǒng)或者將開發(fā)工作外包。重要的是,為您的項(xiàng)目確定幾個(gè)可行的可選實(shí)施方案,以便您進(jìn)行評(píng)估和比較,從而最終為自己的公司選擇最佳的實(shí)施方案。

            評(píng)估經(jīng)濟(jì)可行性
            在評(píng)估一項(xiàng)可選實(shí)施方案的經(jīng)濟(jì)可行性時(shí),要回答的基本問(wèn)題是,該應(yīng)用何時(shí)能收回成本?您可以通過(guò)進(jìn)行成本/收益分析來(lái)回答這個(gè)問(wèn)題。顧名思義,成本/收益分析就是將應(yīng)用的全部實(shí)際成本與其全部實(shí)際財(cái)務(wù)收益相比較。在《The Squandered Computer》一書中(請(qǐng)參閱參考資源),Strassmann 指出,應(yīng)該根據(jù)可選方案對(duì)凈現(xiàn)金流量即收益超過(guò)成本的總金額的貢獻(xiàn)來(lái)評(píng)價(jià)各個(gè)方案,因?yàn)樗型顿Y的首要目標(biāo)就是提高公司的整體業(yè)績(jī)。

            評(píng)估技術(shù)可行性
            除了經(jīng)濟(jì)可行性之外,您還必須確定每項(xiàng)可選實(shí)施方案的技術(shù)可行性。此時(shí)需要回答的基本問(wèn)題是,是否能夠創(chuàng)建該應(yīng)用?首先,您必須調(diào)研該項(xiàng)目要使用的各項(xiàng)技術(shù)。技術(shù)方面的問(wèn)題在于,每項(xiàng)技術(shù)在行銷演示中都能完美地完成工作,而一旦將它購(gòu)買回來(lái),往往又是另一種情況。因此,您應(yīng)該鑒定每一種可供選擇的技術(shù)。請(qǐng)注意,為了進(jìn)行合理的評(píng)估,您可能需要實(shí)現(xiàn)一個(gè)微型項(xiàng)目,并且創(chuàng)建一個(gè)概念驗(yàn)證 (proof-of-concept) 原型來(lái)檢驗(yàn)這些技術(shù)是否能協(xié)同工作。這是 RUP 的描述階段的基本任務(wù),它可能持續(xù)幾周或者幾個(gè)月,但是只有在檢驗(yàn)出您選擇的技術(shù)能否協(xié)同工作時(shí)才會(huì)體現(xiàn)出它的價(jià)值。

            評(píng)估運(yùn)行可行性
            一個(gè)應(yīng)用不應(yīng)該在經(jīng)濟(jì)和技術(shù)上行得通,它還必須在運(yùn)行上行得通。此時(shí)要回答的問(wèn)題的,應(yīng)用一旦成為產(chǎn)品,是否能夠?qū)υ搼?yīng)用提供維護(hù)和支持?創(chuàng)建一個(gè)應(yīng)用與運(yùn)行一個(gè)應(yīng)用完全是兩碼事;因此,您必須確定是否能夠有效地運(yùn)行和支持它。

            選擇一項(xiàng)可選方案
            一旦完成對(duì)每項(xiàng)可選實(shí)施方案的經(jīng)濟(jì)、技術(shù)和運(yùn)行可行性評(píng)估,就應(yīng)該從中選擇一種實(shí)施方案。請(qǐng)記住可行性研究的目標(biāo)是,比較和對(duì)比各項(xiàng)可選實(shí)施方案,提出一個(gè)最佳的實(shí)施方案。執(zhí)行該項(xiàng)任務(wù)的第一步是,排除任何在經(jīng)濟(jì)上、技術(shù)上或者運(yùn)行上不可行的方案。這意味著您可能沒(méi)有剩下任何可選方案。但是什么都不做可能也是不可行的,它意味著您必須從頭再來(lái),鑒定更多的可選方案。如果只剩下一個(gè)可選方案,則很容易做出決策;如果最后剩下多個(gè)可選方案,則必須選擇一個(gè)最適合您的公司的實(shí)施方案。您還可以只確定可行的可選方案,而將決策權(quán)留給上級(jí)主管部門。

            確定潛在的風(fēng)險(xiǎn)
            項(xiàng)目論證工作包括定義潛在的風(fēng)險(xiǎn),特別是那些與項(xiàng)目的技術(shù)和運(yùn)行可行性相關(guān)的潛在風(fēng)險(xiǎn)。關(guān)鍵的一點(diǎn)是應(yīng)該將它們加入您的風(fēng)險(xiǎn)評(píng)估文檔,以便在項(xiàng)目實(shí)施過(guò)程中能夠妥善處理它們,這也是今后的技巧要討論的主題。

            參考資源
            關(guān)于過(guò)程模型和 Rational Unified Process 的詳細(xì)信息,請(qǐng)參閱:

            · Process Patterns — Building Large-Scale Systems Using Object TechnologyScott W. Ambler 著。Cambridge University 出版社,紐約,1998 年。

            · More Process Patterns — Delivering Large-Scale Systems Using Object TechnologyScott W. Ambler 著。Cambridge University 出版社,紐約,1999 年。

            · The Object Primer 2nd EditionScott W. Ambler 著。Cambridge University 出版社,紐約,2000 年。

            · The Unified Process Inception PhaseScott W. Ambler Larry L. Constantine 著。R&D BooksCAGilroy2000 年。

            · The Unified Process Elaboration PhaseScott W. Ambler Larry L. Constantine 著。R&D BooksCAGilroy2000 年。

            · Patterns of Software Systems Failure and SuccessCapers Jones 著。International Thomson Computer 出版社,MABoston1996 年。

            · The Rational Unified Process: An Introduction》,第二版,Philippe Kruchten 著。Reading, MA: Addison-Wesley Longman, Inc.MAReading2000 年。

            · The Squandered Computer: Evaluating the Business Alignment of Information TechnologiesPaul Strassmann 著。New CanaanCTInformation Economics 出版社,CTNew Canaan1997 年。

            · The Process Patterns Resource PageScott Ambler

            · Scott Ambler 的在線文章


            /*  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  */
            1. 論證階段的過(guò)程模型(譯)

            方案文檔,                                                                                                                           可行性研究,
            版本,                                                  評(píng)估運(yùn)行可行性   風(fēng)險(xiǎn)評(píng)估                                建議,
            方案評(píng)估,    => 論證執(zhí)行方案 =>                                       =>  選擇一種方案 =>   項(xiàng)目資金,
            進(jìn)度表,                                              評(píng)估經(jīng)濟(jì)可行性   評(píng)估技術(shù)可行性                   確定潛在風(fēng)險(xiǎn)
            風(fēng)險(xiǎn)估計(jì)

            posted @ 2008-03-09 23:45 yutou 閱讀(3162) | 評(píng)論 (0)編輯 收藏

            2008年3月4日

            “我近三十年來(lái)一直在學(xué)習(xí)馬克思主義哲學(xué),并總是試圖用馬克思主義哲學(xué)指導(dǎo)我的工作。馬克思主義是智慧的源泉。”      --錢學(xué)森在給一位朋友的信中這樣說(shuō)道

            馬克思主義哲學(xué)對(duì)一個(gè)人的思想有著革命性的意義.

            blog之,提醒自己不要忽視哲學(xué),并且鞭策自己要堅(jiān)持學(xué)習(xí)!

            posted @ 2008-03-04 13:30 yutou 閱讀(201) | 評(píng)論 (0)編輯 收藏

            欧美日韩精品久久久免费观看| 色婷婷综合久久久久中文一区二区| 免费精品99久久国产综合精品| 国产精品久久久久天天影视| 久久狠狠色狠狠色综合| 国内精品久久久久久久久| 亚洲午夜精品久久久久久浪潮 | 国内精品久久久久久久coent| 久久国产免费| 欧洲精品久久久av无码电影| 久久久久久国产精品美女| 久久综合狠狠综合久久综合88| 国产毛片久久久久久国产毛片 | 久久99国产精品久久99小说| 99久久er这里只有精品18| 久久国产热精品波多野结衣AV| 久久久综合香蕉尹人综合网| 久久精品国产亚洲一区二区三区| 伊人久久五月天| 99久久精品免费看国产| 一本一本久久A久久综合精品| 精品久久久久久久中文字幕| 99精品久久精品| 亚洲成色www久久网站夜月| 要久久爱在线免费观看| 久久嫩草影院免费看夜色| 久久国产乱子伦精品免费强| 久久久久久久久久久久中文字幕| 国产A三级久久精品| 偷窥少妇久久久久久久久| 无码任你躁久久久久久久| 国产精品亚洲综合专区片高清久久久| 99久久无码一区人妻a黑| 中文精品久久久久人妻不卡| 伊人久久大香线蕉亚洲| 精品综合久久久久久97| 免费精品久久天干天干| 久久国产劲爆AV内射—百度| 亚洲综合日韩久久成人AV| 香蕉久久av一区二区三区| 久久国产精品无码HDAV|