欧美二区在线,日本高清在线播放一区二区三区,67194成人手机在线http://www.bjzhda.cnzh-cn曙海教育集團論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團論壇關于F2812中用C語言來實現中斷的說明http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2414&Page=1wangxinxin2010-12-10 12:04:35關于F2812中用C語言來實現中斷的說明:
1.首先在.cmd中定位系統中斷表:
MEMORY
{
PAGE 0 :
......................................
PAGE 1 :
......................................
PIE_VECT : origin = 0x000D00, length = 0x000100

7 @' f# G+ T1 g

......................................
}


SECTIONS
{
...................................
PieVectTable : > PIE_VECT, PAGE = 1
.....................................
}
2.在C中制定該中斷的結構體:
#pragma DATA_SECTION(PieVectTable,"PieVectTable");
struct PIE_VECT_TABLE PieVectTable;(在DSP28_GlobalVariableDefs.C中初始化)
3.用一組常數(按照中斷向量的順序)初始化該名字為PIE_VECT_TABLE的表:
typedef interrupt void(*PINT)(void);這里有些一問,一下應該為函數名??

) M. w, G3 ^+ v) c* h e5 o

// Define Vector Table:
struct PIE_VECT_TABLE {

: y5 r# r' m( }4 F# \! d! _7 z

// Reset is never fetched from this table.
// It will always be fetched from 0x3FFFC0 in either
// boot ROM or XINTF Zone 7 depending on the state of
// the XMP/MC input signal. On the F2810 it is always
// fetched from boot ROM.

8 r: r, N5 P. b" o$ J2 C6 ]

PINT PIE1_RESERVED;
PINT PIE2_RESERVED;
PINT PIE3_RESERVED;
PINT PIE4_RESERVED;
PINT PIE5_RESERVED;
PINT PIE6_RESERVED;
PINT PIE7_RESERVED;
PINT PIE8_RESERVED;
PINT PIE9_RESERVED;
PINT PIE10_RESERVED;
PINT PIE11_RESERVED;
PINT PIE12_RESERVED;
PINT PIE13_RESERVED;

% ^! U6 d* R6 Q9 ?

// Non-Peripheral Interrupts:
PINT XINT13; // XINT13
PINT TINT2; // CPU-Timer2
PINT DATALOG; // Datalogging interrupt
PINT RTOSINT; // RTOS interrupt
PINT EMUINT; // Emulation interrupt
PINT XNMI; // Non-maskable interrupt
PINT ILLEGAL; // Illegal operation TRAP
PINT USER0; // User Defined trap 0
PINT USER1; // User Defined trap 1
PINT USER2; // User Defined trap 2
PINT USER3; // User Defined trap 3
PINT USER4; // User Defined trap 4
PINT USER5; // User Defined trap 5
PINT USER6; // User Defined trap 6
PINT USER7; // User Defined trap 7
PINT USER8; // User Defined trap 8
PINT USER9; // User Defined trap 9
PINT USER10; // User Defined trap 10
PINT USER11; // User Defined trap 11

// Group 1 PIE Peripheral Vectors:
PINT PDPINTA; // EV-A
PINT PDPINTB; // EV-B
PINT rsvd1_3;
PINT XINT1;
PINT XINT2;
PINT ADCINT; // ADC
PINT TINT0; // Timer 0
PINT WAKEINT; // WD

// Group 2 PIE Peripheral Vectors:
PINT CMP1INT; // EV-A
PINT CMP2INT; // EV-A
PINT CMP3INT; // EV-A
PINT T1PINT; // EV-A
PINT T1CINT; // EV-A
PINT T1UFINT; // EV-A
PINT T1OFINT; // EV-A
PINT rsvd2_8;

// Group 3 PIE Peripheral Vectors:
PINT T2PINT; // EV-A
PINT T2CINT; // EV-A
PINT T2UFINT; // EV-A
PINT T2OFINT; // EV-A
PINT CAPINT1; // EV-A
PINT CAPINT2; // EV-A
PINT CAPINT3; // EV-A
PINT rsvd3_8;

// Group 4 PIE Peripheral Vectors:
PINT CMP4INT; // EV-B
PINT CMP5INT; // EV-B
PINT CMP6INT; // EV-B
PINT T3PINT; // EV-B
PINT T3CINT; // EV-B
PINT T3UFINT; // EV-B
PINT T3OFINT; // EV-B
PINT rsvd4_8;

// Group 5 PIE Peripheral Vectors:
PINT T4PINT; // EV-B
PINT T4CINT; // EV-B
PINT T4UFINT; // EV-B
PINT T4OFINT; // EV-B
PINT CAPINT4; // EV-B
PINT CAPINT5; // EV-B
PINT CAPINT6; // EV-B
PINT rsvd5_8;

# c" P/ a, `' g. t' Y' V: l

// Group 6 PIE Peripheral Vectors:
PINT SPIRXINTA; // SPI-A
PINT SPITXINTA; // SPI-A
PINT rsvd6_3;
PINT rsvd6_4;
PINT MRINTA; // McBSP-A
PINT MXINTA; // McBSP-A
PINT rsvd6_7;
PINT rsvd6_8;

// Group 7 PIE Peripheral Vectors:
PINT rsvd7_1;
PINT rsvd7_2;
PINT rsvd7_3;
PINT rsvd7_4;
PINT rsvd7_5;
PINT rsvd7_6;
PINT rsvd7_7;
PINT rsvd7_8;

) X+ e1 w- d" o% S5 `1 h# o

// Group 8 PIE Peripheral Vectors:
PINT rsvd8_1;
PINT rsvd8_2;
PINT rsvd8_3;
PINT rsvd8_4;
PINT rsvd8_5;
PINT rsvd8_6;
PINT rsvd8_7;
PINT rsvd8_8;

. n) v4 d; T, }9 H% Y7 l7 K

// Group 9 PIE Peripheral Vectors:
PINT RXAINT; // SCI-A
PINT TXAINT; // SCI-A
PINT RXBINT; // SCI-B
PINT TXBINT; // SCI-B
PINT ECAN0INTA; // eCAN
PINT ECAN1INTA; // eCAN
PINT rsvd9_7;
PINT rsvd9_8;

: F: C6 l( m* Y) x

// Group 10 PIE Peripheral Vectors:
PINT rsvd10_1;
PINT rsvd10_2;
PINT rsvd10_3;
PINT rsvd10_4;
PINT rsvd10_5;
PINT rsvd10_6;
PINT rsvd10_7;
PINT rsvd10_8;

// Group 11 PIE Peripheral Vectors:
PINT rsvd11_1;
PINT rsvd11_2;
PINT rsvd11_3;
PINT rsvd11_4;
PINT rsvd11_5;
PINT rsvd11_6;
PINT rsvd11_7;
PINT rsvd11_8;

' R0 L2 H0 L4 M e- X0 p

// Group 12 PIE Peripheral Vectors:
PINT rsvd12_1;
PINT rsvd12_2;
PINT rsvd12_3;
PINT rsvd12_4;
PINT rsvd12_5;
PINT rsvd12_6;
PINT rsvd12_7;
PINT rsvd12_8;
};
然后在使我們在.cmd文件中定義的表有以上屬性:
extern struct PIE_VECT_TABLE PieVectTable;(在.h文件中)
4.初始化該表(在.c文件中)使之能夠為主程序所使用:
const struct PIE_VECT_TABLE PieVectTableInit = {

0 e/ r* {5 P7 u k. \7 a

PIE_RESERVED, // Reserved space
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,

# T& u6 w: U0 R# J! j


// Non-Peripheral Interrupts
INT13_ISR, // XINT13 or CPU-Timer 1
INT14_ISR, // CPU-Timer2
DATALOG_ISR, // Datalogging interrupt
RTOSINT_ISR, // RTOS interrupt
EMUINT_ISR, // Emulation interrupt
NMI_ISR, // Non-maskable interrupt
ILLEGAL_ISR, // Illegal operation TRAP
USER0_ISR, // User Defined trap 0
USER1_ISR, // User Defined trap 1
USER2_ISR, // User Defined trap 2
USER3_ISR, // User Defined trap 3
USER4_ISR, // User Defined trap 4
USER5_ISR, // User Defined trap 5
USER6_ISR, // User Defined trap 6
USER7_ISR, // User Defined trap 7
USER8_ISR, // User Defined trap 8
USER9_ISR, // User Defined trap 9
USER10_ISR, // User Defined trap 10
USER11_ISR, // User Defined trap 11

: N' }3 w, d# q7 r

// Group 1 PIE Vectors
PDPINTA_ISR, // EV-A
PDPINTB_ISR, // EV-B
rsvd_ISR,
XINT1_ISR,
XINT2_ISR,
ADCINT_ISR, // ADC
TINT0_ISR, // Timer 0
WAKEINT_ISR, // WD

_4 }) S" s$ N( k+ k( `5 R# l' T$ @

// Group 2 PIE Vectors
CMP1INT_ISR, // EV-A
CMP2INT_ISR, // EV-A
CMP3INT_ISR, // EV-A
T1PINT_ISR, // EV-A
T1CINT_ISR, // EV-A
T1UFINT_ISR, // EV-A
T1OFINT_ISR, // EV-A
rsvd_ISR,

// Group 3 PIE Vectors
T2PINT_ISR, // EV-A
T2CINT_ISR, // EV-A
T2UFINT_ISR, // EV-A
T2OFINT_ISR, // EV-A
CAPINT1_ISR, // EV-A
CAPINT2_ISR, // EV-A
CAPINT3_ISR, // EV-A
rsvd_ISR,

// Group 4 PIE Vectors
CMP4INT_ISR, // EV-B
CMP5INT_ISR, // EV-B
CMP6INT_ISR, // EV-B
T3PINT_ISR, // EV-B
T3CINT_ISR, // EV-B
T3UFINT_ISR, // EV-B
T3OFINT_ISR, // EV-B
rsvd_ISR,

// Group 5 PIE Vectors
T4PINT_ISR, // EV-B
T4CINT_ISR, // EV-B
T4UFINT_ISR, // EV-B
T4OFINT_ISR, // EV-B
CAPINT4_ISR, // EV-B
CAPINT5_ISR, // EV-B
CAPINT6_ISR, // EV-B
rsvd_ISR,

( A( Z, `9 g8 I, i% t% ~: L2 E

// Group 6 PIE Vectors
SPIRXINTA_ISR, // SPI-A
SPITXINTA_ISR, // SPI-A
rsvd_ISR,
rsvd_ISR,
MRINTA_ISR, // McBSP-A
MXINTA_ISR, // McBSP-A
rsvd_ISR,
rsvd_ISR,

// Group 7 PIE Vectors
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,

+ I( b) D4 S' a5 W

// Group 8 PIE Vectors
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,

// Group 9 PIE Vectors
SCIRXINTA_ISR, // SCI-A
SCITXINTA_ISR, // SCI-A
SCIRXINTB_ISR, // SCI-B
SCITXINTB_ISR, // SCI-B
ECAN0INTA_ISR, // eCAN
ECAN1INTA_ISR, // eCAN
rsvd_ISR,
rsvd_ISR,

// Group 10 PIE Vectors
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,

// Group 11 PIE Vectors
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,

9 c$ u# B O8 L e- J# ]

// Group 12 PIE Vectors
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
rsvd_ISR,
};

$ l; q3 G X) h) K+ y


//---------------------------------------------------------------------------
// InitPieVectTable:
//---------------------------------------------------------------------------
// This function initializes the PIE vector table to a known state.
// This function must be executed after boot time.
//

6 I6 S1 Q9 M4 Q) a/ g$ L

void InitPieVectTable(void)
{
int16 i;
Uint32 *Source = (void *) &圖片點擊可在新窗口打開查看ieVectTableInit;
Uint32 *Dest = (void *) &圖片點擊可在新窗口打開查看ieVectTable;

EALLOW;
for(i=0; i < 128; i++)
*Dest++ = *Source++;
EDIS;

[/ t; }+ q! a6 n9 W/ |

// Enable the PIE Vector Table
PieCtrl.PIECRTL.bit.ENPIE = 1;

}
5.中斷服務程序:
讓以上的數值指向你所要的服務程序,例如:
PieVectTable.TINT2 = &ISRTimer2;
那么,ISRTimer2也就成了中斷服務程序,
×××切記:一定要在主程序的開始先聲明該程序:
interrupt void ISRTimer2(void);

6 U |2 W: o" G; N* r" {/ S# v* C

.............
.............
然后按照您的需要編制該程序:
interrupt void ISRTimer2(void)
{
CpuTimer2.InterruptCount++;
}

" z. p8 _* J1 d% v6 t8 q. o: W$ p]]>
C語言編譯過程總結詳解http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2413&Page=1wangxinxin2010-12-10 11:48:31 

圖片點擊可在新窗口打開查看

 

從圖上可以看到,整個代碼的編譯過程分為編譯和鏈接兩個過程,編譯對應圖中的大括號括起的部分,其余則為鏈接過程。
 

編譯過程


 

編譯過程又可以分成兩個階段:編譯和會匯編。


 

編譯


 

       編譯是讀取源程序(字符流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,源文件的編譯過程包含兩個主要階段:


 

       第一個階段是預處理階段,在正式的編譯階段之前進行。預處理階段將根據已放置在文件中的預處理指令來修改源文件的內容。如#include指令就是一個預處理指令,它把頭文件的內容添加到.cpp文件中。這個在編譯之前修改源文件的方式提供了很大的靈活性,以適應不同的計算機和操作系統環境的限制。一個環境需要的代碼跟另一個環境所需的代碼可能有所不同,因為可用的硬件或操作系統是不同的。在許多情況下,可以把用于不同環境的代碼放在同一個文件中,再在預處理階段修改代碼,使之適應當前的環境。
 


 

主要是以下幾方面的處理:


 

(1)宏定義指令,如 #define a  b
對于這種偽指令,預編譯所要做的是將程序中的所有a用b替換,但作為字符串常量的 a則不被替換。還有 #undef,則將取消對某個宏的定義,使以后該串的出現不再被替換。


 

(2)條件編譯指令,如#ifdef,#ifndef,#else,#elif,#endif等。
這些偽指令的引入使得程序員可以通過定義不同的宏來決定編譯程序對哪些代碼進行處理。預編譯程序將根據有關的文件,將那些不必要的代碼過濾掉
   
(3) 頭文件包含指令,如#include "FileName"或者#include <FileName>等。
在頭文件中一般用偽指令#define定義了大量的宏(最常見的是字符常量),同時包含有各種外部符號的聲明。采用頭文件的目的主要是為了使某些定義可以供多個不同的C源程序使用。因為在需要用到這些定義的C源程序中,只需加上一條#include語句即可,而不必再在此文件中將這些定義重復一遍。預編譯程序將把頭文件中的定義統統都加入到它所產生的輸出文件中,以供編譯程序對之進行處理。包含到c源程序中的頭文件可以是系統提供的,這些頭文件一般被放在 /usr/include目錄下。在程序中#include它們要使用尖括號(<>)。另外開發人員也可以定義自己的頭文件,這些文件一般與 c源程序放在同一目錄下,此時在#include中要用雙引號("")。
   
(4)特殊符號,預編譯程序可以識別一些特殊的符號。
例如在源程序中出現的LINE標識將被解釋為當前行號(十進制數),FILE則被解釋為當前被編譯的C源程序的名稱。預編譯程序對于在源程序中出現的這些串將用合適的值進行替換。
   
       預編譯程序所完成的基本上是對源程序的“替代”工作。經過此種替代,生成一個沒有宏定義、沒有條件編譯指令、沒有特殊符號的輸出文件。這個文件的含義同沒有經過預處理的源文件是相同的,但內容有所不同。下一步,此輸出文件將作為編譯程序的輸出而被翻譯成為機器指令。
   
       第二個階段編譯、優化階段,經過預編譯得到的輸出文件中,只有常量;如數字、字符串、變量的定義,以及C語言的關鍵字,如main,if,else,for,while,{,}, +,-,*,\等等。
   
       編譯程序所要作得工作就是通過詞法分析和語法分析,在確認所有的指令都符合語法規則之后,將其翻譯成等價的中間代碼表示或匯編代碼。
   
       優化處理是編譯系統中一項比較艱深的技術。它涉及到的問題不僅同編譯技術本身有關,而且同機器的硬件環境也有很大的關系。優化一部分是對中間代碼的優化。這種優化不依賴于具體的計算機。另一種優化則主要針對目標代碼的生成而進行的。
   
       對于前一種優化,主要的工作是刪除公共表達式、循環優化(代碼外提、強度削弱、變換循環控制條件、已知量的合并等)、復寫傳播,以及無用賦值的刪除,等等。

       后一種類型的優化同機器的硬件結構密切相關,最主要的是考慮是如何充分利用機器的各個硬件寄存器存放的有關變量的值,以減少對于內存的訪問次數。另外,如何根據機器硬件執行指令的特點(如流水線、RISC、CISC、VLIW等)而對指令進行一些調整使目標代碼比較短,執行的效率比較高,也是一個重要的研究課題。
   
匯編
   
      匯編實際上指把匯編語言代碼翻譯成目標機器指令的過程。對于被翻譯系統處理的每一個C語言源程序,都將最終經過這一處理而得到相應的目標文件。目標文件中所存放的也就是與源程序等效的目標的機器語言代碼。目標文件由段組成。通常一個目標文件中至少有兩個段:


代碼段:該段中所包含的主要是程序的指令。該段一般是可讀和可執行的,但一般卻不可寫。


 

數據段:主要存放程序中要用到的各種全局變量或靜態的數據。一般數據段都是可讀,可寫,可執行的。
 


 

UNIX環境下主要有三種類型的目標文件:


 

(1)可重定位文件
其中包含有適合于其它目標文件鏈接來創建一個可執行的或者共享的目標文件的代碼和數據。


 

(2)共享的目標文件

這種文件存放了適合于在兩種上下文里鏈接的代碼和數據。第一種是鏈接程序可把它與其它可重定位文件及共享的目標文件一起處理來創建另一個目標文件;
第二種是動態鏈接程序將它與另一個可執行文件及其它的共享目標文件結合到一起,創建一個進程映象。


 

(3)可執行文件
   
       它包含了一個可以被操作系統創建一個進程來執行之的文件。匯編程序生成的實際上是第一種類型的目標文件。對于后兩種還需要其他的一些處理方能得到,這個就是鏈接程序的工作了。


 

鏈接過程

       由匯編程序生成的目標文件并不能立即就被執行,其中可能還有許多沒有解決的問題。
   
       例如,某個源文件中的函數可能引用了另一個源文件中定義的某個符號(如變量或者函數調用等);在程序中可能調用了某個庫文件中的函數,等等。所有的這些問題,都需要經鏈接程序的處理方能得以解決。
   
       鏈接程序的主要工作就是將有關的目標文件彼此相連接,也即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的這些目標文件成為一個能夠誒操作系統裝入執行的統一整體。
   
       根據開發人員指定的同庫函數的鏈接方式的不同,鏈接處理可分為兩種:


 

(1)靜態鏈接
        在這種鏈接方式下,函數的代碼將從其所在地靜態鏈接庫中被拷貝到最終的可執行程序中。這樣該程序在被執行時這些代碼將被裝入到該進程的虛擬地址空間中。靜態鏈接庫實際上是一個目標文件的集合,其中的每個文件含有庫中的一個或者一組相關函數的代碼。


 

(2) 動態鏈接
   
       在此種方式下,函數的代碼被放到稱作是動態鏈接庫或共享對象的某個目標文件中。鏈接程序此時所作的只是在最終的可執行程序中記錄下共享對象的名字以及其它少量的登記信息。在此可執行文件被執行時,動態鏈接庫的全部內容將被映射到運行時相應進程的虛地址空間。動態鏈接程序將根據可執行程序中記錄的信息找到相應的函數代碼。
   
       對于可執行文件中的函數調用,可分別采用動態鏈接或靜態鏈接的方法。使用動態鏈接能夠使最終的可執行文件比較短小,并且當共享對象被多個進程使用時能節約一些內存,因為在內存中只需要保存一份此共享對象的代碼。但并不是使用動態鏈接就一定比使用靜態鏈接要優越。在某些情況下動態鏈接可能帶來一些性能上損害。
   
       我們在linux使用的gcc編譯器便是把以上的幾個過程進行捆綁,使用戶只使用一次命令就把編譯工作完成,這的確方便了編譯工作,但對于初學者了解編譯過程就很不利了,下圖便是gcc代理的編譯過程:

圖片點擊可在新窗口打開查看

從上圖可以看到:


 

預編譯
將.c 文件轉化成 .i文件
使用的gcc命令是:gcc –E
對應于預處理命令cpp


 

編譯
將.c/.h文件轉換成.s文件
使用的gcc命令是:gcc –S
對應于編譯命令   cc –S


 

匯編
將.s 文件轉化成 .o文件
使用的gcc 命令是:gcc –c
對應于匯編命令是  as


 

鏈接
將.o文件轉化成可執行程序
使用的gcc 命令是: gcc
對應于鏈接命令是  ld


 

       總結起來編譯過程就上面的四個過程:預編譯、編譯、匯編、鏈接。Lia了解這四個過程中所做的工作,對我們理解頭文件、庫等的工作過程是有幫助的,而且清楚的了解編譯鏈接過程還對我們在編程時定位錯誤,以及編程時盡量調動編譯器的檢測錯誤會有很大的幫助的。

]]>
各位對C語言結構中成員的對齊(alignment)怎樣理解?http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2412&Page=1wangxinxin2010-12-10 11:47:29zp1 zp2 zp4 zp8 zp16 sizeof(member) \--------------------------------------- 1 | 0 0 0 0 0 2 | 0 2 2 2 2 4 | 0 2 4 4 4 8 | 0 2 4 8 8 16 | 0 2 4 8 16 x | aligned to largest member 看一段代碼: #include #include typedef struct memo_el { char date[9]; struct memo_el *prev,*next; int ref_number; char sex; } memo; main( ) { printf( "Offset of %s is %d\n", "date", offsetof( memo, date ) ); printf( "Offset of %s is %d\n", "prev", offsetof( memo, prev ) ); printf( "Offset of %s is %d\n", "next", offsetof( memo, next ) ); printf( "Offset of %s is %d\n", "ref_number", offsetof( memo, ref_number ) ); printf( "Offset of %s is %d\n", "sex", offsetof( memo, sex ) ); printf( "Size of %s is %d\n", "memo", sizeof( memo ) ); printf( "Number of padding bytes is %d\n", sizeof( memo ) - (offsetof( memo, sex ) + sizeof( char )) ); return 0; } 輸出: 16位zp1:(毫無疑問) Offset of date is 0 Offset of prev is 9 Offset of next is 11 Offset of ref_number is 13 Offset of sex is 15 Size of memo is 16 Number of padding bytes is 0 16位 zp2、4、8結果都一樣: Offset of date is 0 Offset of prev is 10 Offset of next is 12 Offset of ref_number is 14 Offset of sex is 16 Size of memo is 18 Number of padding bytes is 1 如果再把成員改一個長整類型, typedef struct memo_el { char date[9]; struct memo_el *prev,*next; long int ref_number; char sex; } memo; 結果在16位ZP2-8都是這樣: Offset of date is 0 Offset of prev is 10 Offset of next is 12 Offset of ref_number is 16 Offset of sex is 20 Size of memo is 24 Number of padding bytes is 3 現在我無法解釋了~]]>16道嵌入式C語言面試題http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2411&Page=1wangxinxin2010-12-10 11:45:341. 用預處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)

#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在這想看到幾件事情:
1). #define 語法的基本知識(例如:不能以分號結束,括號的使用,等等)
2). 懂得預處理器將為你計算常數表達式的值,因此,直接寫出你是如何計算一年中有多少秒而不是計算出實際的值,是更清晰而沒有代價的。
3). 意識到這個表達式將使一個16位機的整型數溢出-因此要用到長整型符號L,告訴編譯器這個常數是的長整型數。
4). 如果你在你的表達式中用到UL(表示無符號長整型),那么你有了一個好的起點。記住,第一印象很重要。


2. 寫一個“標準”宏MIN,這個宏輸入兩個參數并返回較小的一個。


#define MIN(A,B) ((A) <= (B) (A) : (B))
這個測試是為下面的目的而設的:
1). 標識#define在宏中應用的基本知識。這是很重要的,因為直到嵌入(inline)操作符變為標準C的一部分,宏是方便產生嵌入代碼的唯一方法,對于嵌入式系統來說,為了能達到要求的性能,嵌入代碼經常是必須的方法。
2). 三重條件操作符的知識。這個操作符存在C語言中的原因是它使得編譯器能產生比if-then-else更優化的代碼,了解這個用法是很重要的。
3). 懂得在宏中小心地把參數用括號括起來
4). 我也用這個問題開始討論宏的副作用,例如:當你寫下面的代碼時會發生什么事?
least = MIN(*p++, b);

3. 預處理器標識#error的目的是什么?

如果你不知道答案,請看參考文獻1。這問題對區分一個正常的伙計和一個書呆子是很有用的。只有書呆子才會讀C語言課本的附錄去找出象這種
問題的答案。當然如果你不是在找一個書呆子,那么應試者最好希望自己不要知道答案。

死循環(Infinite loops)

4. 嵌入式系統中經常要用到無限循環,你怎么樣用C編寫死循環呢?

這個問題用幾個解決方案。我首選的方案是:
while(1) { }
一些程序員更喜歡如下方案:
for(;;) { }
這個實現方式讓我為難,因為這個語法沒有確切表達到底怎么回事。如果一個應試者給出這個作為方案,我將用這個作為一個機會去探究他們這樣做的
基本原理。如果他們的基本答案是:“我被教著這樣做,但從沒有想到過為什么。”這會給我留下一個壞印象。
第三個方案是用 goto
Loop:
...
goto Loop;
應試者如給出上面的方案,這說明或者他是一個匯編語言程序員(這也許是好事)或者他是一個想進入新領域的BASIC/FORTRAN程序員。

數據聲明(Data declarations)

5. 用變量a給出下面的定義
a) 一個整型數(An integer)
b) 一個指向整型數的指針(A pointer to an integer)
c) 一個指向指針的的指針,它指向的指針是指向一個整型數(A pointer to a pointer to an integer)
d) 一個有10個整型數的數組(An array of 10 integers)
e) 一個有10個指針的數組,該指針是指向一個整型數的(An array of 10 pointers to integers)
f) 一個指向有10個整型數數組的指針(A pointer to an array of 10 integers)
g) 一個指向函數的指針,該函數有一個整型參數并返回一個整型數(A pointer to a function that takes an integer as an argument and returns an integer)
h) 一個有10個指針的數組,該指針指向一個函數,該函數有一個整型參數并返回一個整型數 ( An array of ten pointers to functions that take an integer argument and return an integer )

答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer


人們經常聲稱這里有幾個問題是那種要翻一下書才能回答的問題,我同意這種說法。當我寫這篇文章時,為了確定語法的正確性,我的確查了一下書。
但是當我被面試的時候,我期望被問到這個問題(或者相近的問題)。因為在被面試的這段時間里,我確定我知道這個問題的答案。應試者如果不知道
所有的答案(或至少大部分答案),那么也就沒有為這次面試做準備,如果該面試者沒有為這次面試做準備,那么他又能為什么出準備呢?


Static

6. 關鍵字static的作用是什么?

這個簡單的問題很少有人能回答完全。在C語言中,關鍵字static有三個明顯的作用:
1). 在函數體,一個被聲明為靜態的變量在這一函數被調用過程中維持其值不變。
2). 在模塊內(但在函數體外),一個被聲明為靜態的變量可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問。它是一個本地的全局變量。
3). 在模塊內,一個被聲明為靜態的函數只可被這一模塊內的其它函數調用。那就是,這個函數被限制在聲明它的模塊的本地范圍內使用。
大多數應試者能正確回答第一部分,一部分能正確回答第二部分,同是很少的人能懂得第三部分。這是一個應試者的嚴重的缺點,因為他顯然不懂得本地化數據和代碼范圍的好處和重要性。


Const

7.關鍵字const是什么含意?
我 只要一聽到被面試者說:“const意味著常數”,我就知道我正在和一個業余者打交道。去年Dan Saks已經在他的文章里完全概括了const的所有 用法,因此ESP(譯者:Embedded Systems Programming)的每一位讀者應該非常熟悉const能做什么和不能做什么.如果你從沒有讀到那篇文章,只要能說出const意味著“只讀”就可以了。盡管這個答案不是完全的答案,但我接受它作為一個正確的答案。(如果你想知道更詳細的答案,仔細讀一下Saks的文章吧。)如果應試者能正確回答這個問題,我將問他一個附加的問題:下面的聲明都是什么意思?

const int a;
int const a;
const int *a;
int * const a;
int const * a const;

前兩個的作用是一樣,a是一個常整型數。第三個意味著a是一個指向常整型數的指針(也就是,整型數是不可修改的,但指針可以)。第四個意思a是一個指向整型數的常指針(也就是說,指針指向的整型數是可以修改的,但指針是不可修改的)。最后一個意味著a是一個指向常整型數的常指針(也就是說,指針指向的整型數是不可修改的,同時指針也是不可修改的)。如果應試者能正確回答這些問題,那么他就給我留下了一個好印象。順帶提一句,也許你可能會問,即使不用關鍵字 const,也還是能很容易寫出功能正確的程序,那么我為什么還要如此看重關鍵字const呢?我也如下的幾下理由:
1). 關鍵字const 的作用是為給讀你代碼的人傳達非常有用的信息,實際上,聲明一個參數為常量是為了告訴了用戶這個參數的應用目的。如果你曾花很多時間清理其它人留下的垃圾,你就會很快學會感謝這點多余的信息。(當然,懂得用const的程序員很少會留下的垃圾讓別人來清理的。)
2). 通過給優化器一些附加的信息,使用關鍵字const也許能產生更緊湊的代碼。
3). 合理地使用關鍵字const可以使編譯器很自然地保護那些不希望被改變的參數,防止其被無意的代碼修改。簡而言之,這樣可以減少bug的出現。

Volatile

8. 關鍵字volatile有什么含意 并給出三個不同的例子。

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

位操作(Bit manipulation)

9. 嵌入式系統總是要用戶對變量或寄存器進行位操作。給定一個整型變量a,寫兩段代碼,第一個設置a的bit 3,第二個清除a 的bit 3。在以上兩個操作中,要保持其它位不變。

對這個問題有三種基本的反應
1). 不知道如何下手。該被面者從沒做過任何嵌入式系統的工作。
2). 用bit fields。Bit fields是被扔到C語言死角的東西,它保證你的代碼在不同編譯器之間是不可移植的,同時也保證了的你的代碼是不可重用的。我最近不幸看到Infineon為其較復雜的通信芯片寫的驅動程序,它用到了bit fields因此完全對我無用,因為我的編譯器用其它的方式 來實現bit fields的。從道德講:永遠不要讓一個非嵌入式的家伙粘實際硬件的邊。
3). 用 #defines 和 bit masks 操作。這是一個有極高可移植性的方法,是應該被用到的方法。最佳的解決方案如下:
#define BIT3 (0x1<<3)
static int a;
void set_bit3(void)
{
a |= BIT3;
}
void clear_bit3(void)
{
a &= ~BIT3;
}
一些人喜歡為設置和清除值而定義一個掩碼同時定義一些說明常數,這也是可以接受的。我希望看到幾個要點:說明常數、|=和&=~操作。

訪問固定的內存位置(Accessing fixed memory locations)

10. 嵌入式系統經常具有要求程序員去訪問某特定的內存位置的特點。在某工程中,要求設置一絕對地址為0x67a9的整型變量的值為0xaa66。編譯器是一個純粹的ANSI編譯器。寫代碼去完成這一任務。

這一問題測試你是否知道為了訪問一絕對地址把一個整型數強制轉換(typecast)為一指針是合法的。這一問題的實現方式隨著個人風格不同而不同。典型的類似代碼如下:
int *ptr;
ptr = (int *)0x67a9;
*ptr = 0xaa55;

一個較晦澀的方法是:
*(int * const)(0x67a9) = 0xaa55;

即使你的品味更接近第二種方案,但我建議你在面試時使用第一種方案。

中斷(Interrupts)

11. 中斷是嵌入式系統中重要的組成部分,這導致了很多編譯開發商提供一種擴展—讓標準C支持中斷。具代表事實是,產生了一個新的關鍵字 __interrupt。下面的代碼就使用了__interrupt關鍵字去定義了一個中斷服務子程序(ISR),請評論一下這段代碼的。

__interrupt double compute_area (double radius)
{
     double area = PI * radius * radius;
     printf(" Area = %f", area);
     return area;
}

這個函數有太多的錯誤了,以至讓人不知從何說起了:
1). ISR 不能返回一個值。如果你不懂這個,那么你不會被雇用的。
2). ISR 不能傳遞參數。如果你沒有看到這一點,你被雇用的機會等同第一項。
3). 在許多的處理器/編譯器中,浮點一般都是不可重入的。有些處理器/編譯器需要讓額處的寄存器入棧,有些處理器/編譯器就是不允許在ISR中做浮點運算。此外,ISR應該是短而有效率的,在ISR中做浮點運算是不明智的。
4). 與第三點一脈相承,printf()經常有重入和性能上的問題。如果你丟掉了第三和第四點,我不會太為難你的。不用說,如果你能得到后兩點,那么你的被雇用前景越來越光明了。

代碼例子(Code examples)
12 . 下面的代碼輸出是什么,為什么?

void foo(void)
{
     unsigned int a = 6;
     int b = -20;
     (a+b > 6) puts("> 6") : puts("<= 6");
}

這個問題測試你是否懂得C語言中的整數自動轉換原則,我發現有些開發者懂得極少這些東西。不管如何,這無符號整型問題的答案是輸出是“>6”。原因是當表達式中存在有符號類型和無符號類型時所有的操作數都自動轉換為無符號類型。因此-20變成了一個非常大的正整數,所以該表達式計算出的結果大于6。這一點對于應當頻繁用到無符號數據類型的嵌入式系統來說是豐常重要的。如果你答錯了這個問題,你也就到了得不到這份工作的邊緣。

13. 評價下面的代碼片斷:

unsigned int zero = 0;
unsigned int compzero = 0xFFFF;
/*1's complement of zero */

對于一個int型不是16位的處理器為說,上面的代碼是不正確的。應編寫如下:

unsigned int compzero = ~0;

這一問題真正能揭露出應試者是否懂得處理器字長的重要性。在我的經驗里,好的嵌入式程序員非常準確地明白硬件的細節和它的局限,然而PC機程序往往把硬件作為一個無法避免的煩惱。
到了這個階段,應試者或者完全垂頭喪氣了或者信心滿滿志在必得。如果顯然應試者不是很好,那么這個測試就在這里結束了。但如果顯然應試者做得不錯,那么我就扔出下面的追加問題,這些問題是比較難的,我想僅僅非常優秀的應試者能做得不錯。提出這些問題,我希望更多看到應試者應付問題的方法,而不是答案。不管如何,你就當是這個娛樂吧…

 

動態內存分配(Dynamic memory allocation)

 

14. 盡管不像非嵌入式計算機那么常見,嵌入式系統還是有從堆(heap)中動態分配內存的過程的。那么嵌入式系統中,動態分配內存可能發生的問題是什么?

這 里,我期望應試者能提到內存碎片,碎片收集的問題,變量的持行時間等等。這個主題已經在ESP雜志中被廣泛地討論過了(主要是 P.J. Plauger, 他的解釋遠遠超過我這里能提到的任何解釋),所有回過頭看一下這些雜志吧!讓應試者進入一種虛假的安全感覺后,我拿出這么一個小節目:下面的代碼片段的輸出是什么,為什么?

char *ptr;
if ((ptr = (char *)malloc(0)) == NULL)
puts("Got a null pointer");
else
puts("Got a valid pointer");

這是一個有趣的問題。最近在我的一個同事不經意把0值傳給了函數malloc,得到了一個合法的指針之后,我才想到這個問題。這就是上面的代碼,該代碼的輸出是“Got a valid pointer”。我用這個來開始討論這樣的一問題,看看被面試者是否想到庫例程這樣做是正確。得到正確的答案固然重要,但解決問題的方法和你做決定的基本原理更重要些。

Typedef

15. Typedef 在C語言中頻繁用以聲明一個已經存在的數據類型的同義字。也可以用預處理器做類似的事。例如,思考一下下面的例子:
#define dPS struct s *
typedef struct s * tPS;

以上兩種情況的意圖都是要定義dPS 和 tPS 作為一個指向結構s指針。哪種方法更好呢?(如果有的話)為什么?
這是一個非常微妙的問題,任何人答對這個問題(正當的原因)是應當被恭喜的。答案是:typedef更好。思考下面的例子:
dPS p1,p2;
tPS p3,p4;

第一個擴展為
struct s * p1, p2;

上面的代碼定義p1為一個指向結構的指,p2為一個實際的結構,這也許不是你想要的。第二個例子正確地定義了p3 和p4 兩個指針。

]]>
用C語言描述數據結構http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2410&Page=1wangxinxin2010-12-10 11:44:16- t8 D2 T/ B6 g6 |
在過去的一年之中,我對計算機的語言有了一個大體的了解,在前一段時間,我自學了數據結構,下面,談談我自學的數據結構的看法,在接下來一段有人指點的時間里,再來糾正以前對數據結構的錯誤看法。; j0 G/ l! I! H9 g' D
數據結構是一個比較抽象的東西,他的任務是從各種實際的問題中歸納,抽象出個對象的特征,對象之間的相互關系,在選擇合適的數據結構來組織,、儲存和選擇相應的算法。其中,最重要的還是一種抽象思維的轉換,需要有一種歸納的思維,在初學的 時候,我選擇了在理解的基礎上背一些比較典型的數據結構,比如:線性表,隊,餞的儲存方法等,最后發現一些其他的東西也可以類似。* c5 ?! A2 R+ y8 z: }3 r$ y
用C語言描述數據結構可以分為以下幾部分:線性表,隊,餞,廣義表,然后是樹,圖,最后還有遞歸,串,查找,排序。其中較為典型的例子有走迷宮,漢諾塔,出入隊列哈夫曼編碼等。
. q8 y1 h( Q7 M0 w/ B現行表示具有相同特征的數據元素的一個有限序列,儲存方式有兩種:順序儲存——順序表,鏈式儲存——鏈表。" _3 V) M4 |3 ^6 X
(一)順序表儲存結構,用C語言來運行各個基本運算的分類:
+ I5 m  C# h; ?- C4 iTypedef char ElemType          /*將字符性重新用ElemType來定義*/
' L  A, L9 e7 ^) ~: C( c#define MaxSize  99           /*用宏定義來定義MaxSize*/) n- t9 ~2 X7 S  c
Typedef struct8 ?# \+ s+ T$ {
{
2 r8 r! j& A7 f! X. W8 XElemType elem[MaxSize];      /*定義一種為SqList的結構體類型*/
9 _, c6 o, `& P& E) Z, cInt length;
9 t- _8 C2 O$ E6 t0 E; `}SqList;" {  s- |( E* s9 ?- A" Q
(1)    初始化線性表0 D& d  J, ^  ]7 D: Q* e( W
Void InitList(SqList *&L)     /*將L定義為SqList類型*/
9 ]! x, g% q5 d! ?: r{4 Q2 e! a9 l* V2 `; J+ x
L=(Sqlist *)malloc(sizeof(SqList));   /*在內存的動態區分配一個長度為n個
1 @1 R. {, Z0 \# [) @/ ~1 nL->length=0;                          長為sizeof的連續空間*/
, t7 \% o3 u* J- B$ S6 l' V}! `( l, D+ O' b; I9 Q1 S9 M9 s  {
(2)    銷毀線性表
8 B( }2 G, [2 A2 j$ P        Void DestroyList(SqList *&L). g' ]; ?7 ~+ L4 J" Q# p5 U
{+ V) j+ O; a( V" }1 s  R9 m% a" D% [
Free(L);                          /*釋放L的儲存空間*/
0 w! b% l/ W0 }4 V9 X1 W}( @9 E4 `/ {* P1 H5 i0 v
(3)    判斷線性表是否為空3 W* _" k0 a  t* @4 f) w6 Q
Int ListEmpty(SqList *L)2 F  ~2 l# x% ^$ |, \9 v7 A/ o
{
: l1 M+ d! Q1 V) C3 n2 KReturn(L->length==0);( }8 m) _0 \' x! l( J6 x
}  S9 ?# U; z# I& r& n& s: H* ?- E
(4)    求線性表的長度- Y: j3 O/ m4 w4 X' Q! q5 X3 v) e/ {
Int ListLength(SqList *L)' ^! z6 x. O) \$ h- ?0 N' \# U) n
{
1 t# y4 K0 R$ E  d2 c4 b: ?Return(L->length);! l7 P/ S# I+ ?) t" u  H. b/ s
}
' d2 Z0 l3 a& |' g2 S! m1 E. b# P(5)    輸出線性表5 O" _- U# S4 S, q1 J; i$ w
Void Displist(SqList *L)" ]- ~: P7 ~( z: _3 {. j
{) q$ J" K. E* N
int i;
* @; Z4 r$ ?5 n* R8 Yif(ListEmpty(L))
: _: l6 H4 U4 `+ [   return;" J) _5 i; C( }* X# |) Y8 n
for(i=0;i$ \0 U5 ^0 R- Q. n: a
printf(“%c,”L-elem);3 [; X0 n/ T7 i$ }% Y7 F6 B* l
printf(“\n”);
. U+ R$ c9 g, S1 l# {, f2 v! P}
3 g$ n& T0 G) r& b6 \9 |; c(6)    求線性表中某個數據元素得值: N0 Z7 K; ~9 w- F( N9 g/ c
比如求線性表的第i個元素的值e. r1 P  r1 ~2 D
int GetElem(SqList *L,int i,Elemtype e)     /*線性表L的第i個元素的值e*/
  _/ p+ \. T9 |  R{. d& P- X& H) n6 x
If(iL-length)
( B& t0 t/ z7 ~1 Y& eReturn 0;2 d5 ~; t; H2 L
else
3 ~, v( L* G, x      {( p8 H4 z5 a0 _4 b; X
       e=L->elem[i-1];
& J: {, C. v2 {, x( k8 L       return 1;* Q. G/ p+ l7 @0 @4 F
}                                                                                                        0 U. I' W- q0 f# ~2 q
(7)    按元素值查找(查找第一個與元素值相同的元素的位置)
3 b2 @$ b3 f' i4 E+ Cint Locateelem(SqList *L,Elemtype e)2 u2 A9 g, k& y7 \3 Y& ?+ u
{" M9 B1 a; a/ \+ P% o% w$ D. c
        int i=0;
' w- E' U" }* Q; e        while(ilength&&L->elem!=e)      /*i的值存在的范圍*/
9 i9 K7 f7 s! _! h  y. n. b- I               i++;$ z, p# B3 I- O# _" h# z
        if(i>=L-length)
: x. m5 ?0 F5 y2 h! x8 x- |9 y               return 0;4 n7 g5 \7 W4 v' o; `
        else
! h* M! B, R: t               return i+1;
3 B" b( ^  i. ^0 W6 R0 W}
# E+ c# L- P8 a2 T(8)    插入數據元素
' t, |3 o  C/ O: M; k% ~int ListInsert(SqList *L,int i,ElemType e)
) A1 x) Y/ O( ?- F; U{6 H" W3 j* W- L2 v+ V2 Y& G% s
       int j;
; l4 _( V. _# w       if(iL->length+1)
( X% P3 O  K9 @9 h              return 0;
: F1 o! a! m4 e: ]. Q       i--;4 I% c. w8 }9 N
       for(j=L->length;j>1;j--)
+ h, a- V, n3 V" N6 T5 R              L->elem[j]=L->elem[j-1];         /*首先出一個空的位子,然后前面的值依次4 M) J: T( V6 K5 V! @
       L->elem[e];                       覆蓋后面的值,即將前面的支附給后面的值*/
& n6 C, `. F+ n, z) `1 X       L->length++;
5 E* @6 t. t* T8 \5 S+ i       return 1;& p$ W' i) L+ z4 k
}
8 w& I% P' w$ u3 j7 U/ s6 m! f(9)刪除數據元素
+ H( i. ]9 F& I* iint ListDelete(SqList *L,int i,ElemType &e)' k. J9 [0 {  l  x; [
{1 |. M7 T* G* L6 Z# Y- I
       int j;
" `" I; D+ D* T6 L1 F       if(iL->length+1)
1 \, M9 K) x+ e8 n              return 0;
: o+ y6 d' G" r       i--;# @! Q) i, {6 [
       e=L->elem;# |( \/ P% I1 |; H6 u
       for(j=i;jlength-1;j++)
* s$ e' L* Q% v, p              L->elem[j]=L->elem[j+1];        /*與插入數據元素基本相似*/2 L' p+ k5 k, p
       L->length--;
  {7 n( T0 ?7 s% E6 @6 W# x       return 1;
# ?: l2 N' u0 K% B& m  @! g}
2 D: t# d$ n# l. ?; l5 A* l以上是數據結構關于順序表的各種有關的儲存方式,與順序表對應的是鏈表,它也是一種非常重要的儲存方式。  B) G% L; Q- P1 d
在初次接觸到c語言的時候已經對鏈表有了大體的了解,它主要是由結點和指針域組成,指針指向下一個結點。3 l/ ~& [$ u. s# ^0 L
(二)單鏈表的運算的實現
3 V% H! |; p2 H1 ^Typedef char ElemType
3 X7 q: Y& a( q; [  [: Q#define MaxSize 99+ {6 ^4 j- W  c) _! K) t. _* I" k9 a1 Y
Typedef struct LNode1 L* R; i4 Q0 o
{, ]8 W5 R; L- w4 g0 @  G' j
ElemType data;8 t5 F, v0 Z" I! t, K
struct LNode *next;
; A' R: B% j& ]9 o; s, `, p}LinkList;
  j" i2 ~* B% x(1)初始化線性表
7 P& R( L) ~- Y, Kvoid InitList(LinkList *&L)
$ p& W, [8 x* p$ [: R" v9 ?( P/ h8 j{+ F$ y* a6 x( i* ^  Z
       L=(Linklist *)malloc(sizeof(Linklist));     /*創建頭結點*/
7 Z4 t% S; e1 S* D" @7 x       L->next=NULL;
* e0 ?/ Z/ v4 b! G- J( j4 H8 q}
" C3 e7 ^* h) U1 o0 K3 k(2)銷毀線性表1 f0 y$ t" J9 m% W2 T5 }) q
Void DestroyList(LinkList *&L)1 P, G" ~3 G( G$ e# G
{, h3 l) f1 c' d3 A# p1 F8 t
       LinkList *p=L,q=L->next;           /*p位頭結點,q為p的后繼結點*// O' {5 e' t3 \3 v; _5 y, g
       while(q!=NULL)
& X7 R! J' c2 u3 y; d% W. I) [& Z" Q- R       {0 a5 d3 K0 \' N' A& E5 s. d+ L
              free(p);  U6 z$ H: f3 X- I2 F6 ?# R
              p=q;                       /*p逐漸向后釋放*/; r3 Q0 d7 c9 u! q
              q=p-next;
7 d: U3 Y; k9 h# Vfree(p);                         /*釋放最后一個p*/8 b, ^0 f0 U4 Y+ s
}
# f7 n: L) q* ](3)判斷線性表是否為空?1 k! k6 v% d/ b! i' y1 u
int ListEmpty(LinkList *L)
# z  T" Q3 E& m9 z0 T2 Q9 h{
4 E2 F8 k( Q2 r/ E# O5 L: j       return(L->next==NULL)6 l# h9 o+ s5 w4 {/ I3 l
}" x* V* r& t9 T$ c0 x. f  M
]]>
沒有見過的c語言用法,求救http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2409&Page=1wangxinxin2010-12-10 11:39:46unsigned char IfInterTimeOK(tagInterTime * ptime) {
        if(ptime->ucDelay == 0) return 0;
    ptime->ucCount = (ptime->ucCount) + 1;
    if(ptime->ucCount >= ptime->ucDelay) {
            ptime->ucCount = 0;
        return 1;
    }
    return 0;
}
//-----------------------------------------------------------------
typedef struct {
        unsigned char ucDelay, ucCount;
}tagInterTime;                                                                        // Control the interface control time
unsigned char IfInterTimeOK(tagInterTime * ptime);// 1:Action OK
//---------------------------------------------------------------------------------
#define __INTERTIME_DECL(x, y)        SUBLIB_EXT tagInterTime g_it##x;  
#define __IT_START(x, y)                (g_it##x##.ucDelay = y, g_it##x##.ucCount = y)
#define __IT_STOP(x, y)                        g_it##x##.ucDelay = 0
#define __IT_OK(x, y)                        IfInterTimeOK(&g_it##x)
//------------------------------------------------------------------------------
#define IT_DECL(x)                                __INTERTIME_DECL(x)
#define IT_START(x)                                __IT_START(x)
#define IT_STOP(x)                                __IT_STOP(x)
#define IT_OK(x)                                __IT_OK(x)

#define AAA                        A, 25

下面這是用法,不知道是什么意思?
IT_START(AAA);   
if(IT_OK(AAA)) IT_START(AAA);
IT_STOP(AAA);
忘c語言高手指教一下
]]>
對C#開發的兩個基本原則的深入討論http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2408&Page=1wangxinxin2010-12-10 11:37:07
  明辨值類型和引用類型的使用場合

  這個條款討論的是類型設計時候的tradeoff——是將類型設計為結構還是類。Bill Wagner先生給出了一個原則“值類型用于存儲數據,引用類型用于定義行為(value types store values and reference types define behavior)”。

  如何判斷這個原則的適用性,Bill Wagner也給出了一個方法,那就是首先回答下面幾個問題:

  1.該類型的主要職責是否用于數據存儲?

  2.該類型的公有接口是否都是一些存取屬性?

  3.是否確信該類型永遠不可能有子類?

  4.是否確信該類型永遠不可能具有多態行為?

  如果所有問題的答案都是yes,那么就應該采用值類型。這樣的判斷確實有很好的理由支撐,但是我個人認為“將這4個問題回答為yes”還不足以構成采用值類型的全部理由。因為在很多項目實踐中,我發現值類型帶來的性能問題不可小視。值類型帶來的性能問題主要有兩個:

  1.由于值類型實例在棧和托管堆之間的轉換而導致的box/unbox,以及由此帶來的托管堆上的垃圾。

  2.值類型默認情況下采用的是值拷貝語義,如果是比較大的值類型,在傳遞參數和函數返回值時,同樣會帶來性能問題。

  關于第1條,Bill Wagner在本條款中提到了“引用類型會給垃圾收集器帶來負擔”這個表面看似正確的判斷。但是由于box/unbox的效應,有些情況下,反倒是值類型給垃圾收集器帶來了更多的負擔。比如將一些值類型放到一個集合中,然后又頻繁地對其進行讀寫操作。如果碰到這種情況,我想“放棄結構而采用類”未嘗不是一種更好的做法。事實上,將一個用作數據存儲的值類型(比如System.Drawing.Point)添加到一個集合(System.Collections.ArrayList)中是一個太常見不過的操作。不過,C# 2.0中新引入的泛型技術對box/unbox的問題有極大的改善。

  關于第2條,Scott Meyers先生在Effective C++的第22條“盡量使用pass-by-reference(傳址),少用pass-by-value(傳值)”中講的比較清楚。雖然由于C#中的結構類型具有默認的深拷貝語義,沒有拷貝構造器的調用。而且結構類型也沒有子類,因此在某種程度上來講不具有多態性,也就沒有C++對象傳值時可能出現的切割(slicing)效應。但是值拷貝的成本仍然不小。尤其是在這個值類型比較大的情況下,問題就比較嚴重。實際上,在.NET框架的Design Guidelines for Class Library Developers文檔中,在說明什么時候應該使用結構類型的時候,其中提到了一項原則(還有其他一些并行原則)——類型實例數據的大小要小于16個字節。該文檔主要是從類型的運行效率層面來考慮的,而Bill Wagner先生這里的條款主要是從類型的設計層面來考慮的。

  從上述兩條討論來看,我個人傾向于對結構類型采取更為保守的設計策略。而對于類則可以積極大膽地使用。因為“將結構類型不適當地設計為類”帶來的不良后果要遠遠小于“將類不適當地設計為結構類型”所帶來的不良后果。就目前的經驗來看,我甚至認為只有和非托管互操作打交道的情況才是使用結構類型最充足的理由,其他情況都要“三思而后行”。當然,在C# 2.0中引入泛型技術之后,box/unbox將不再是一個沉重的負擔,應付一些非常輕量級的場合,結構類型依然有自己的一席之地。]]>
C語言實戰105例源碼--私藏很久的源碼http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2407&Page=1wangxinxin2010-12-10 11:35:15第1部分 基礎篇

實例1 一個價值“三天”的BUG 2
實例2 靈活使用遞增(遞減)操作符 5
實例3 算術運算符計算器 7
實例4 邏輯運算符計算器 9
實例5 IP地址解析 11
實例6 用if…else語句解決獎金發放問題 13
實例7 用for循環模擬自由落體 16
實例8 用while語句求n! 19
實例9 模擬銀行常用打印程序 22
實例10 使用一維數組統計選票 26
實例11 使用二維數組統計學生成績 29
實例12 簡單的計算器 32
實例13 時鐘程序 35
實例14 華氏溫度和攝氏溫度的相互轉換 38
實例15 SimpleDebug函數應用 40

第2部分 數值計算與數據結構篇

實例16 常用的幾種排序方法 46
實例17 廣度優先搜索及深度優先搜索 53
實例18 實現基本的串操作 59
實例19 計算各點到源點的最短距離 62
實例20 儲油問題 65
實例21 中獎彩球問題 67
實例22 0-1背包問題 69
實例23 階梯計數問題 72
實例24 二叉樹算法集 74
實例25 模擬LRU頁面置換算法 79
實例26 大整數階乘新思路 82
實例27 銀行事件驅動模擬程序 84
實例28 模擬迷宮探路 87
實例29 實現高隨機度隨機序列 89
實例30 停車場管理系統 91

第3部分 文本屏幕與文件操作篇

實例31 菜單實現 96
實例32 窗口制作 97
實例33 模擬屏幕保護程序 100
實例34 文件讀寫基本操作 102
實例35 格式化讀寫文件 105
實例36 成塊讀寫操作 107
實例37 隨機讀寫文件 108
實例38 文件的加密和解密 111
實例39 實現兩個文件的連接 113
實例40 實現兩個文件信息的合并 116
實例41 文件信息統計 118
實例42 文件分割實例 121
實例43 同時顯示兩個文件的內容 123
實例44 模擬Linux環境下的vi編輯器 124
實例45 文件操作綜合應用——銀行賬戶管理 128

第4部分 病毒與安全篇

實例46 實用內存清理程序 134
實例47 如何檢測Sniffer  136
實例48 加密DOS批處理程序 139
實例49 使用棧實現密碼設置 141
實例50 遠程緩沖區溢出漏洞利用程序 144
實例51 簡易漏洞掃描器 146
實例52 文件病毒檢測程序 149
實例53 監測內存泄露與溢出 150
實例54 實現traceroute命令 152
實例55 實現ping程序功能 154
實例56 獲取Linux本機IP地址 157
實例57 實現擴展內存的訪問 161
實例58 隨機加密程序 164
實例59 MD5加密程序 165
實例60 RSA加密實例 168

第5部分 圖形篇

實例61 制作表格 172
實例62 用畫線函數作出的圖案 174
實例63 多樣的橢圓 176
實例64 多變的立方體 177
實例65 簡易時鐘 178
實例66 跳動的小球 181
實例67 用柱狀圖表示學生成績各分數段比率 183
實例68 EGA/VGA屏幕存儲 187
實例69 按鈕制作 190
實例70 三維視圖制作 193
實例71 紅旗圖案制作 194
實例72 火焰動畫制作 196
實例73 模擬水紋擴散 199
實例74 彩色的Photo Frame  201
實例75 火箭發射演示 203

第6部分 系統篇

實例76 恢復內存文本 208
實例77 挽救磁盤數據 210
實例78 建立和隱藏多個PRI DOS分區 213
實例79 簡單的DOS下的中斷服務程序 216
實例80 文件名分析程序 219
實例81 鼠標中斷處理 222
實例82 實現磁盤數據的整體加密 224
實例83 揭開CMOS密碼 227
實例84 獲取網卡信息 229
實例85 創建自己的設備 231
實例86 設置應用程序啟動密碼 233
實例87 獲取系統配置信息 236
實例88 硬件檢測 239
實例89 管道通信 241
實例90 程序自殺技術實現 244

第7部分 游戲篇

實例91 連續擊鍵游戲 248
實例92 擲骰子游戲 250
實例93 彈力球 252
實例94 俄羅斯方塊 253
實例95 24點撲克牌游戲 257
實例96 貪吃蛇 260
實例97 潛水艇大戰 262
實例98 機器人大戰 265
實例99 圖形模式下的搬運工 266
實例100 十全十美游戲 269
第8部分 綜合篇
實例101 強大的通信錄 274
實例102 模擬Windows下UltraEdit程序 277
實例103 輕松實現個人理財 279
實例104 競技比賽打分系統 281
實例105 火車訂票系統 286]]>
關于C和C++區別的討論http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2406&Page=1wangxinxin2010-12-10 11:20:17    我個人理解,這二者其實沒有太大差異性。

    C語言面向過程,OP,C++語言面向對象,OO.

    但實際上大家可能能關注到,不管如何OO,如何劃分類和對象,但是,具體到一個功能,還是要用函數來實現,不管如何寫程序,到了函數內部,其實還是那些if、for、while等等語句,還是面向過程的。

    所以,我和我的同事,平時并不會明顯去分辨C和C++的異同,在我們看來,二者本來就是一體的。

    其實這個世界上,完全的OO是不存在的,當我們實現一個功能的時候,很多時候,就是界定一些數據,針對數據添加一些處理流程,獲得一個結果,這件事情,本質上就是個過程。

    但C++還是很有用的。

    因為很多年以前,大家覺得傳統面向過程的語言,如C,如Basic,如Pascal,都有一個缺點,就是在程序中,彼此暴露了太多的細節,這造成各個功能之間,由于程序員的失誤,很容易發生粘連,聯系。換而言之,就算是非法訪問,通常也是合法而成功的,不會被編譯器檢查出來。比如C就允許全局變量和遠指針調用。

    這在開發大型系統的時候,就出現了bug率居高不下,大型工程項目很難完成的缺點。

    正是因為此,大家在上世紀七十年代,提出了模塊化開發的思想,試圖通過各個模塊的獨立開發和運行,強行阻斷各個模塊不必要的耦合性,來達到讓程序穩定的目的。

    但這樣畢竟是人工在操作,是人做的,就可能會犯錯誤,大家覺得有必要在編譯器這一級,要強調模塊之間的獨立性。

    這個時候,大家經過分析,發現程序其實核心是和數據打交道的,一個數據,業務上只要界定了用途,基本上,可能的訪問方法就確定得差不多了,那么,我們有沒有可能,把一類數據,以及其方法,從編譯器的角度區別開來,構建獨立模塊,外部模塊僅能訪問到它允許訪問的方法,其他的方法,全部報錯,拒絕編譯呢?

    答案是當然可以。大家就這么做了。那么,我們看看,一類數據和其允許的方法的集合,就是對象啦,在這個思想上,OO,面向對象的思想就產生了。

    最初,這個語言是一個新的語言,好像叫smalltalk吧,不過,這個時候的語言,還是實驗室產品,沒有投入商業運營。

    但這個時候,市場上,由于UNIX的推動,C語言基本上已經一統天下了。很多人都學的C語言,讓大家去學習一門新語言,尤其是開發思路完全不同的語言,是不可想象的,成本太高。大家就想,能不能折中一下,以C的語法為藍本,開發一套OO的語言,C++就這么誕生了。

    其實OP到OO,C到C++,本質上講,就是一個數據私有化的過程。甚至整個語言的發展史,也是一個數據私有化的過程。如匯編語言,其實是沒有私有數據的,所有的內存都可以被訪問。

    人們通過編譯器的界定和完善,逐漸實現數據私有化,最終的目標就是實現一個軟件系統內部各個模塊之間,高內聚,低耦合的目標,最終保證程序員的產品質量,進而提高生產率。

    至于后面的泛型編程,多態,繼承等等,無非是在這條路上繼續了一步而已,當然,也是為了盡量減少程序員的代碼輸入量,進一步提升生產效率而已。

    所以,從數據組織上講,C++比C先進了一大步,但從功能實現上講,C++和C并無本質不同。C++到現在,都不是一種完全的面向對象語言,因為它都仍然保留了全局變量。

    所以我的意見,兩個一起學,不要刻意去區分,好像用C就要用純C,沒必要。

    我們工程中,系統級的模塊組織,一般式C++的對象,每個單步功能,流程的實現,我們都是C的函數,僅僅是放在類里面而已

]]>
關于對c++基本語言的看法http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2405&Page=1wangxinxin2010-12-10 11:16:57也許寫這篇文章有的人會笑話我,都什么時候的年代了居然要談這個話題。是的我承認有點老套了,原因是我畢業的時間太晚,接觸到的c++太晚。先前的自己一直以來就是認為c語言真是個好東東,編程語言中其他語言不管多么上手,所么方便好用在我看來都不如c語言來的真實,c語言是一種實在的語言,是一種你看得到,想的到,作的到的語言。之前我在青島的時候基本上接觸的是c語言,主要是在linux下的開發,剛畢業的自己說實話對c認識太淺了,我掌握的是在linux下應用程序的開發,大部分用到了對文件的讀取,對指針的操作,而且自己都是在公司前輩的路下沿著開發的。自己根本就沒有真正的去認真想想算法開發一個應用程式。現在想來真是可悲的很,學習c語言如果自己不進行程序的算法開發,這是一個瞎子在路燈下亂逛,以為是找到了光明就可以跟正常人一樣,熟不知自己仍在無知中。所以之前對c的鐘情有些轉向,轉到了自己利用算法來實現功能的想法。

    為什么我第一段要講講c語言呢,因為c語言是一切語言的基礎,這好像是我大學時第一次接觸編程語言的老師跟我說得一句話,如果c語言不能掌握,其他的語言肯定也不會好的。現在這我話我已經深信不疑了,不管是java也好,c#也好還是最新的python等等語言吧,在我看來都是以c的基礎來進行的,所謂的新無非是自己不用再想一些函數庫德算法了,我承認這是一種進步,至少是站在別人的肩膀上做事.效率的時代講究的也是效率這也正是講究效率開發公司對這些方便語言的鐘情。這是可以理解的事情。不過這里我要說的是c++,這是真正的與c語言接觸緊密但是確實又非常實用的語言,人們都說c++是個好東東,可是在開發的時候卻有時極力的回避這種語言,最終是因為c語言的復雜性。說句我個人的看法,我覺得這樣做是不對的,因為高科技不是一中大眾化的知識,講究的是一個人或一個團隊的智慧,就是因為c++的復雜性就不去用它,或是少去用它而是用更多的方便開發語言,這種想法是不好的,因為如果一個搞程序的人對算法都不能很好的去自行開發,只會是去沿用別人寫好的東西。充其量跟工廠里的機器裝配工很像,無非是把基本的一些寫好的類庫函數庫羅列好了。如果真是這樣這是軟件業的恥辱,也是中國軟件業的恥辱。

   很多時候都是在說為什么人家外國的程序員都他媽的那么牛,一個個根爺爺的似的,寫得標準也是好的,作的東西也是好的,就連出的代碼書也是好的。我想這里應該有一定的原因吧。昨天把c++的基本課程設計的書看了一遍,發現c++如果真正的實用開發,真是太帥了,不管是從代碼的羅列,思想的拓展。真是讓人感覺又一種耳目一新的感覺。c++的這種真正的面向對象是一種完美的結構,當然世界上不可能有那么完美的語言。但是給我的感覺是一種思路的拓寬,讓我對程序的架構有一種新的認識,可能是自己的編程語言基礎差,看了c++的基礎讓我感觸頗深,如果我寫得不像話,那還要請您對原諒畢竟我還是一個在不斷上升中的小小菜鳥,我接觸編程還不到2年,這里也就給我點鼓勵,給您鞠躬了。

]]>
用C語言進行CGI程序設計http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2404&Page=1wangxinxin2010-12-10 11:14:23作 者 : 肖治延

  CGI(公用網關接口)規定了Web服務器調用其他可執行程序(CGI程 序)的接口協議標準。Web服務器通過調用CGI程序實現和Web瀏覽器的交互,也就是CGI程序接受Web瀏覽器發送給Web服務器的信息,進行處理,將響應結果再回送給Web服務器及Web瀏覽器。CGI程序一般完成Web網頁中表單(Form)數據的處理、數據庫查詢和實現與傳統應用系統的集成等工作。CGI程序可以用任何程序設計語言編寫,如Shell腳本語言、Perl、Fortran、Pascal、C語言等。但是用C語言編寫的CGI程序具有執行速度快、安全性高(因為C語言程序是編譯執行且不可被修改)等特點。

  CGI接口標準包括標準輸入、環境變量、標準輸出三部分。

  1.標準輸入

  CGI程序像其他可執行程序一樣,可通過標準輸入(stdin)從Web服務器得到輸入信息,如Form中的數據,這就是所謂的向CGI程序傳遞數據的POST方法。這意味著在操作系統命令行狀態可執行CGI程序,對CGI程序進行調試。POST方法是常用的方法,本文將以此方法為例,分析CGI程序設計的方法、過程和技巧。

  2.環境變量

  操作系統提供了許多環境變量,它們定義了程序的執行環境,應用程序可以存取它們。Web服務器和CGI接口又另外設置了自己的一些環境變量,用來向CGI程序傳遞一些重要的參數。CGI的GET方法還通過 環境變量QUERY-STRING向CGI程序傳遞Form中的數據。

  3.標準輸出

  CGI程序通過標準輸出(stdout)將輸出信息傳送給Web服務器。傳送給Web服務器的信息可以用各種格式,通常是以純文本或者HTML文本的形式,這樣我們就可以在命令行狀態調試CGI程序,并且得到它們的輸出。

  下面是一個簡單的CGI程序,它將HTML中Form的信息直接輸出到We b瀏覽器。
  #include
  #include
  main()
  {
   int,i,n;
  printf (″Contenttype:text/plain\n\n″);
  n=0;
  if(getenv(″CONTENT-LENGTH″))
  n=atoi(getenv(CONTENT-LENGTH″));
  for (i=0;i< n;i++)>br>   putchar(getchar());
  putchar (′\n′);
  fflush(stdout);
  }


  下面對此程序作一下簡要的分析。

  prinft (″Contenttype:text/plain\n\n″);
  此行通過標準輸出將字符串″Contenttype:text/plain\n\n″傳送給Web服務器。它是一個MIME頭信息,它告訴Web服務器隨后的輸出是以純ASCII文本的形式。請注意在這個頭信息中有兩個新行符,這是因為Web服務器需要在實際的文本信息開始之前先看見一個空行。

  if (getenv(″CONTENT-LENGTH″))
  n=atoi (getenv(″CONTENT-LENGTH″));
  此行首先檢查環境變量CONTENT-LENGTH是否存在。Web服務器在調用使用POST方法的CGI程序時設置此環境變量,它的文本值表示Web服務器傳送給CGI程序的輸入中的字符數目,因此我們使用函數atoi() 將此環境變量的值轉換成整數,并賦給變量n。請注意Web服務器并不以文件結束符來終止它的輸出,所以如果不檢查環境變量CONTENT-LENGTH,CGI程序就無法知道什么時候輸入結束了。


  for (i=0;i< n;i++)>br>   putchar(getchar());
  此行從0循環到(CONTENT-LENGTH-1)次將標準輸入中讀到的每一個字符直接拷貝到標準輸出,也就是將所有的輸入以ASCII的形式回送給Web服務器。

  通過此例,我們可將CGI程序的一般工作過程總結為如下幾點。
  1.通過檢查環境變量CONTENT-LENGTH,確定有多少輸入;
  2.循環使用getchar()或者其他文件讀函數得到所有的輸入;
  3.以相應的方法處理輸入;
  4.通過″Contenttype:″頭信息,將輸出信息的格式告訴Web服務器;
  5.通過使用printf()或者putchar()或者其他的文件寫函數,將輸出傳送給Web服務器。
  總之,CGI程序的主要任務就是從Web服務器得到輸入信息,進行處理,然后將輸出結果再送回給Web服務器。


二、環境變量

  環境變量是文本串(名字/值對),可以被OS Shell或其他程序設置 ,也可以被其他程序訪問。它們是Web服務器傳遞數據給CGI程序的簡單手段,之所以稱為環境變量是因為它們是全局變量,任何程序都可以存取它們。

  下面是CGI程序設計中常常要用到的一些環境變量。
  HTTP-REFERER:調用該CGI程序的網頁的URL。
  REMOTE-HOST:調用該CGI程序的Web瀏覽器的機器名和域名。
  REQUEST-METHOD:指的是當Web服務器傳遞數據給CGI程序時所采用的方法,分為GET和POST兩種方法。GET方法僅通過環境變量(如QUERY-STRING)傳遞數據給CGI程序,而POST方法通過環境變量和標準輸入傳遞數據給CGI程序,因此POST方法可較方便地傳遞較多的數據給CGI程序。

  SCRIPT-NAME:該CGI程序的名稱。
  QUERY-STRING:當使用POST方法時,Form中的數據最后放在QUERY-STRING中,傳遞給CGI程序。
  CONTENT-TYPE:傳遞給CGI程序數據的MIME類型,通常為″applica tion/x-www-form-url encodede″,它是從HTML Form中以POST方法傳遞數據給CGI程序的數據編碼類型,稱為URL編碼類型。
  CONTENT-LENGTH:傳遞給CGI程序的數據字符數(字節數)。
  在C語言程序中,要訪向環境變量,可使用getenv()庫函數。例如:
  if (getenv (″CONTENT-LENGTH″))
   n=atoi(getenv (″CONTENT-LENGTH″));
  請注意程序中最好調用兩次getenv():第一次檢查是否存在該環境變量,第二次再使用該環境變量。這是因為函數getenv()在給定的環境變量名不存在時,返回一個NULL(空)指針,如果你不首先檢查而直接引用它,當該環境變量不存在時會引起CGI程序崩潰。


三、From輸入的分析和解碼

  1.分析名字/值對

  當用戶提交一個HTML Form時,Web瀏覽器首先對Form中的數據以名字/值對的形式進行編碼,并發送給Web服務器,然后由Web服務器傳遞給CGI程序。其格式如下:
  name1=value1&name2=value2&name3=value3&name4=value4&...
  其中名字是Form中定義的INPUT、SELECT或TEXTAREA等標置(Tag)名字,值是用戶輸入或選擇的標置值。這種格式即為URL編碼,程序中需要對其進行分析和解碼。要分析這種數據流,CGI程序必須首先將數據流分解成一組組的名字/值對。這可以通過在輸入流中查找下面的兩個字符來完成。
  每當找到字符=,標志著一個Form變量名字的結束;每當找到字符& ,標志著一個Form變量值的結束。請注意輸入數據的最后一個變量的值不以&結束。
  一旦名字/值對分解后,還必須將輸入中的一些特殊字符轉換成相應的ASCII字符。這些特殊字符是:
  +:將+轉換成空格符;
  %xx:用其十六進制ASCII碼值表示的特殊字符。根據值xx將其轉換成相應的ASCII字符。
  對Form變量名和變量值都要進行這種轉換。下面是一個對Form數據進行分析并將結果回送給Web服務器的CGI程序。


  #include
  #include
  #include
  int htoi(char *);
  main()
  {
   int i,n;
  char c;
  printf (″Contenttype: text/plain\n\n″);
  n=0;
  if (getenv(″CONTENT-LENGTH″))
   n=atoi(getenv(″CONTENT-LENGTH″));
  for (i=0; i< n;i++){>br>    int is-eq=0;
  c=getchar();
  switch (c){
   case ′&′:
    c=′\n′;
    break;
   case ′+′:
    c=′ ′;
    break;
   case ′%′:{
    char s[3];
    s[0]=getchar();
    s[1]=getchar();
    s[2]=0;
    c=htoi(s);
    i+=2;
   }
   break;
  case ′=′:
   c=′:′;
   is-eq=1;
   break;
  };
  putchar(c);
  if (is-eq) putchar(′ ′);
  }
  putchar (′\n′);
  fflush(stdout);
  }
  /* convert hex string to int */
  int htoi(char *s)
  {
   char *digits=″0123456789ABCDEF″;
  if (islower (s[0])) s[0]=toupper(s[0]);
  if (islower (s[1])) s[1]=toupper(s[1]);
  return 16 * (strchr(digits, s[0]) -strchr (digits,′0′)
)
  +(strchr(digits,s[1])-strchr(digits,′0′));
  }

  上面的程序首先輸出一個MIME頭信息給Web服務器,檢查輸入中的字符數,并循環檢查每一個字符。當發現字符為&時,意味著一個名字/值對的結束,程序輸出一個空行;當發現字符為+時,將它轉換成空格; 當發現字符為%時,意味著一個兩字符的十六進制值的開始,調用htoi()函數將隨后的兩個字符轉換為相應的ASCII字符;當發現字符為=時,意味著一個名字/值對的名字部分的結束,并將它轉換成字符:。最后將轉換后的字符輸出給Web服務器。



四、產生HTML輸出

  CGI程序產生的輸出由兩部分組成:MIME頭信息和實際的信息。兩部分之間以一個空行分開。我們已經看到怎樣使用MIME頭信息″Cont enttype:text/plain\n\n″和printf()、put char()等函數調用來輸 出純ASCII文本給Web服務器。實際上,我們也可以使用MIME頭信息″C ontenttype:text/html\n\n″來輸出HTML源代碼給Web服務器。請注意任何MIME頭信息后必須有一個空行。一旦發送這個MIME頭信息給We b服務器后,Web瀏覽器將認為隨后的文本輸出為HTML源代碼,在HTML源代碼中可以使用任何HTML結構,如超鏈、圖像、Form,及對其他CGI程 序的調用。也就是說,我們可以在CGI程序中動態產生HTML源代碼輸出 ,下面是一個簡單的例子。

  #include
  #include
  main()
  {
]]>
Java與Flash誰才是網頁游戲領導者http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2403&Page=1wangxinxin2010-12-10 11:13:30
  Flash

  事實上,Flash中的游戲開發已經進行了多年的嘗試。但至今為止仍然停留在中、小型游戲的開發上。游戲開發的很大一部份都受限于它的CPU 能力和大量代碼的管理。不過可喜的是,Flash Player 7運行時性能提高了2至5倍;而且最新的Flash MX 2004 Professional 提供了項目管理和代碼維護方面的功能, Actionscript 2.0 的發布也使得程序更加容易維護和開發。

  實很難界定Web 應用服務的范圍究竟有多大,它似乎它擁有無限的可能。隨著網絡的逐漸滲透,基于客戶端- 服務器的應用設計也開始逐漸受到歡迎,并且一度被譽為最具前景的方式。但是,這種方式開發者可能要花更多的時間在服務器后臺處理能力和架構上,并且將它們與前臺(Flash端)保持同步。

  目前國內就有一款完全基于 Flash 制作的網頁游戲《黑暗契約》。此款游戲遲遲不得開放,原因如何?團隊有關人員如是說:

  “Flash 游戲中會不會卡的問題,絕大部分都是由于 Flash 的天生缺陷造成的,例如單線程、內存管理等等…另外,在服務端我們也做了大量優化,把所有主要的內容都緩沖在了內存中,保證在大量并發時的通信和響應。此外,為了保證服務器出現異常狀況時玩家信息不至于丟失,我們又為內存緩沖開發了復雜的管理和寫回機制。黑暗契約服務器的投入成本會是以往游戲的3倍。”

基于 Flash 制作的網頁游戲《黑暗契約》

 ]]>
C語言之父Dennis Ritchiehttp://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2402&Page=1wangxinxin2010-12-10 11:11:34

丹尼斯·麥卡利斯泰爾·里奇(Dennis MacAlistair Ritchie,1941年9月9日生),出生于美國紐約布朗克斯維爾(Bronxville)。著名的美國計算機科學家,對C語言和其他編程語言、Multics和Unix等操作系統的發展做出了巨大貢獻。

里奇在哈佛大學學習物理學和應用數學畢業,1967年他進入貝爾實驗室,主管貝爾實驗室位于新澤西州的計算機科學研究中心的系統軟件研究部門,目前他是朗訊技術公司系統軟件研究部門的領導人。1983年他與肯·湯普遜一起獲得了圖靈獎。理由是他們“研究發展了通用的操作系統理論,尤其是實現了UNIX操作系統”。1999年兩人為發展C語言和Unix操作系統一起獲得了美國國家技術獎章。

當有人問里奇為什么使用他使用的方式開發了C語言的時候,里奇回答說“這樣做看上去很好”,他說任何人在同一地方、同一時間會像他那樣做的。但是其他許多人認為這只不過反映出了里奇的謙虛。C++的開發者和設計師、里奇在貝爾實驗室的同事比雅尼·斯特勞斯特魯普說:“假如里奇決定在那十年里將他的精力花費在稀奇古怪的數學上,那么Unix將胎死腹中。”

肯·湯普遜(左)和丹尼斯·里奇(右)

肯·湯普遜(左)和丹尼斯·里奇(右)

事實上,丹尼斯·里奇與肯·湯普遜兩人發展了C語言,同時發展了Unix操作系統,在電腦工業史上占有重要的席位。至今為止C語言在發展軟件和操作系統時依然是一個非常常用的電腦語言,它對許多現代的編程語言如C++、C#、Objective-C、Java和JavaScript擁有極大的影響。在操作系統方面Unix也具有極大的影響:今天市場上有許多不同的Unix方言如AIX、Solaris、Mac OS X和BSD等,以及與Unix非常相似的系統如Minix和非常普及的Linux操作系統。甚至其Microsoft Windows操作系統與Unix相競爭的微軟為他們的用戶和開發者提供了與Unix相容的工具和C語言編譯器。

里奇還參加發展了Unix和C語言的兩個后繼軟件:Plan 9和Inferno操作系統以及Limbo語言。兩者均是基于他以前的工作上發展的。

在技術討論中,他常被稱為dmr,這是他在貝爾實驗室的Email地址。值得注意的是,雖然丹尼斯·里奇是C語言的作者,他本人最喜歡的程序語言卻是Alef。

Dennis MacAlistair=

Dennis MacAlistair Ritchie

]]>
C語言難點分析http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2401&Page=1wangxinxin2010-12-10 11:10:48
了解了基本的變量類型后,我們要進一步了解它的存儲類別和變量作用域問題。

變量類別 子類別
局部變量 靜態變量(離開函數,變量值仍保留)
自動變量
寄存器變量
全局變量 靜態變量(只能在本文件中用)
非靜態變量(允許其他文件使用)

換一個角度

變量類別 子類別
靜態存儲變量 靜態局部變量(函數)
靜態全局變量(本文件)
非靜態全局/外部變量(其他文件引用)
動態存儲變量 自動變量
寄存器變量
形式參數

extern型的存儲變量在處理多文件問題時常能用到,在一個文件中定義 extern型的變量即說明這個變量用的是其他文件的。順便說一下,筆者在做課設時遇到out of memory的錯誤,于是改成做多文件,再把它include進來(注意自己寫的*.h要用“”不用<>),能起到一定的效用。static 型的在讀程序寫結果的試題中是個考點。多數時候整個程序會出現多個定義的變量在不同的函數中,考查在不同位置同一變量的值是多少。主要是遵循一個原則,只要本函數內沒有定義的變量就用全局變量(而不是main里的),全局變量和局部變量重名時局部變量起作用,當然還要注意靜態與自動變量的區別。

函數:

對于函數最基本的理解是從那個叫main的單詞開始的,一開始總會覺得把語句一并寫在main里不是挺好的么,為什么偏擇出去。其實這是因為對函數還不夠熟練,否則函數的運用會給我們編程帶來極大的便利。我們要知道函數的返回值類型,參數的類型,以及調用函數時的形式。事先的函數說明也能起到一個提醒的好作用。所謂形參和實參,即在調用函數時寫在括號里的就是實參,函數本身用的就是形參,在畫流程圖時用平行四邊形表示傳參。

函數的另一個應用例子就是遞歸了,筆者開始比較頭疼的問題,反應總是比較遲鈍,按照老師的方法,把遞歸的過程耐心準確的逐級畫出來,學習的效果還是比較好的,會覺得這種遞歸的運用是挺巧的,事實上,著名的八皇后、漢諾塔等問題都用到了遞歸。

例子:
 



數組:

分為一維數組和多維數組,其存儲方式畫為表格的話就會一目了然,其實就是把相同類型的變量有序的放在一起。因此,在處理比較多的數據時(這也是大多數的情況)數組的應用范圍是非常廣的。

具體的實際應用不便舉例,而且絕大多數是與指針相結合的,筆者個人認為學習數組在更大程度上是為學習指針做一個鋪墊。作為基礎的基礎要明白幾種基本操作:即數組賦值、打印、排序(冒泡排序法和選擇排序法)、查找。這些都不可避免的用到循環,如果覺得反應不過來,可以先一點點的把循環展開,就會越來越熟悉,以后自己編寫一個功能的時候就會先找出內在規律,較好的運用了。另外數組做參數時,一維的[]里可以是空的,二維的第一個[]里可以是空的但是第二個[]中必須規定大小。
冒泡法排序函數: 
void bubble( int a[] , int n) 

    
int i,j,k; 
    
for (i=1,i<n;i++
    
for (j=0;j< n-i-1; j++
    
if (a[j]>a[j+1]) 
    { 
        k
=a[j]; 
        a[j]
=a[j+1]; 
        a[j
+1]=k; 
    } 

選擇法排序函數:
void sort( int a[] , int n) 
...
    
int i,j,k,t; 
    
for (i=0,i< n-1 ;i++
    
...
        k
=i ; 
        
for ( j=i+1 ;j<n;j++
            
if (a[k]<a[j]) k=j ; 
        
if ( k!=i ) 
        
...
            t
=a[i]; 
            a[i]
=a[k]; 
            a[k]
=t; 
        }
 
    }
 
}
 

]]>
ELF 程序開發教程及技術討論專貼http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2400&Page=1wangxinxin2010-12-10 11:07:00西門子x65/x75上的 ELF 程序大家已經見識過了,你有沒想過寫出自己的 ELF 程序呢?如果你有C語言基礎,那么加入 ELF 程序開發的隊伍吧。
要在西門子x65/x75上使用 ELF 程序,你應該確定自己的機器上正確的刷了適合你機型的3個補丁(如下):
function library
elfloader
swi-hook
查看機型在待機下輸入 *#06# 選更多,sW-Version一行就是了
現在的 ELF 程序一般是被刷過以上3個補丁的正確版本的機器所通用的(也有可能會限制機型,看程序怎么寫的了8-) )
下面進入正題

目錄:
1.IAR SI 安裝
2.在手機上運行 ELF 程序

3.如何用 IAR 編寫 ELF
4.例1:內存和文件的操作
5.例2:屏幕輸出和鍵盤控制
6.例3:一個后臺計時的小程序
7.例4:內存駐留程序
8.FAQ


1.IAR SI 安裝
www.iar.com下載 IAR Embedded Workbench  For ARM 的30天試用版,最新版為4.41好象(>100 mb),程序下載是免費的,但是會要你先注冊。填寫正確的油箱以后,就會把使用序列號發給你。安裝沒說的了吧,一路下一步,下一步,等等。

2.在手機上運行 ELF 程序
論壇上很多說明了,再扯就遠了點:-')

3.如何用 IAR 編寫 ELF
開始一個 ELF 程序的編寫,還是比較簡單 :P
在菜單上選擇 “Project->Create New Project”
然后選添加"Project->Add Files"把你用其他IDE寫好的C程序添加進來就可以了
工程必須還要有 func.asm (入口點) 和 div.r79 (這個好象莫必要?我也不太清楚,我是業余的:( )
C程序知道怎么寫,問題就不大。
你可能會問,怎么使用到手機里面那些需要的功能函數呢?這就需要 swilib.h 這個頭文件了(附件提供),這里面定義了n多函數,大家看名字猜吧。。。因為沒說明,滅辦法,唉。
上面的操作做好以后,就可以編譯我們的程序了,在 IAR 環境里左邊的 Workspace 下面,把 Debug 選成 Release,然后在工程上點右鍵,選屬性 CPU 可以不用改,下面的 Processor mode 改為 Arm,在 Library Configuration 標簽里,把 Library 選成 None,就可以編譯了。這里你也可以在 Linker 里面設置相關連接選項。生成完畢后,你就可以在 你的工程\Release\Exe 目錄里找到生成的 ELF 文件,放到手機里看看呢?:P

4.例1:內存和文件的操作
創建 main.c 如下后添加到你的工程里:
//main.c
#include "swilib.h"
void ElfKiller(void) { //用于 elf 退出時的相關操作
    extern void *ELF_BEGIN;
    //這里一般使用 mfree(), freeWS() 來釋放內存
    ((void (*)(void *))(mfree_adr()))(ELF_BEGIN); // 懶得解釋 :(
}
int main(char *exename, char *fname) { //主函數
//參數 exename 表示被動使用的ELF? 格式 4:\Zbin\xyz.elf
//參數 fname 傳遞文件名, 格式 0:\Misc\data.txt
//如果 ELF 啟動自身則為 0
    char *mem;
    int i, err;
    int handle;
    if (fname) {
        //操作標準文件:
        handle = fopen(fname, A_ReadWrite+A_BIN+A_Append+A_Create, P_READ+P_WRITE, err);
        //表示按記錄文件打開,數據添加到文件末尾,如果文件不存在則創建之
        //如果為 handle=fopen (fname,A_ReadOnly+A_BIN, 0,err);
        //則表示按只讀方式打開文件,具體常數參看 swilib.h
        if (handle != -1) { //-1 = error
            mem = malloc(10000); //分配內存: AllocWS() 按行分配 (2b)
            if (mem != 0) { //0 = error
                i = fread(handle, mem, 10000, err); //返回讀取得字節數,如果錯誤返回 error。
                //放置你的代碼在這里 makesomebody (mem,i);
                fwrite(handle, mem, i, err);
                mfree(mem); //釋放內存: FreeWS() 按行釋放
            }
            fclose(handle); //關閉文件
        }
    }
    SUBPROC((void *)ElfKiller); //放這個東西在這里就最好了,不存在也沒關系!
    return(0);
}
//PS. 由于 x65 中文件的讀取和記錄是按 32767 字節的塊操作的,
//因此將 fread() 和 fwrite() 改造為 fread32 () 和 fwrite32()
int fread32(int fh, char *buf, int len, unsigned int *err) { // (c) Rst7
    int clen;
    int rlen;
    int total=0;
    while (len) {
        if (len > 16384) clen = 16384; else clen = len;
        total += (rlen = fread(fh, buf, clen, err));
        if (rlen != clen) break;
        buf += rlen;
        len -= clen;
    }
    return(total);
}

最后不要忘了還有 func.asm 這個文件:
;Func.asm
    PUBLIC ELF_BEGIN
    RSEG ELFBEGIN:DATA
ELF_BEGIN
defadr MACRO a,b
   PUBLIC a
a EQU b
   ENDM
   END

5.例2:屏幕輸出和鍵盤控制
通過導航鍵控制屏幕上的符號移動,長按紅鍵退出。本例子基于 TED- A (c) Of rst7
看本例時最好從下往上看:)

創建 main.c 如下后添加到你的工程里:
//main.c
//屏幕和鍵盤處理
#include "swilib.h"
typedef struct {
    GUI gui;
    //WSHDR *ws1;
    //WSHDR *ws2;
    //int i1;
} MAIN_GUI;
typedef struct {
    CSM_RAM csm;
    int gui_id;
} MAIN_CSM;
const int minus11 = -11;
const unsigned int INK = 0;
const unsigned int PAPER = 1;
volatile int xx = 0, yy = 0; //繪圖坐標
const char bmp[12] = {0xFC, 0x86, 0xB3, 0xA9, 0xB1, 0xA9, 0x81, 0xFF, 0, 0, 0, 0};
const IMGHDR img = {8, 12, 0x1, 0, (char *)bmp};
//============
//屏幕輸出
//============
void DrwImg(IMGHDR *img, int x, int y, int *pen, int *brush)  {
    RECT rc;
    DRWOBJ drwobj;
    StoreXYWHtoRECT(rc, x, y, img->w, img->h);
    SetPropTo_Obj5(drwobj, &rc, 0, img);
    SetColor(drwobj, pen, brush);
    DrawObject(drwobj);
}
void DrawScreen(void) {
    int *ink = GetPaletteAdrByColorIndex(INK);
    int *paper = GetPaletteAdrByColorIndex(PAPER);
    int x = xx;
    DrwImg((IMGHDR *)img, x, yy, ink, paper);
}
//繪制屏幕
void method0(MAIN_GUI *data) {
    DrawScreen();
}
void method1(MAIN_GUI *data, void *(*malloc_adr)(int)) {}
void method2(MAIN_GUI *data, void (*mfree_adr)(void *)) {}
void method3(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *)) {}
void method4(MAIN_GUI *data, void (*mfree_adr)(void *)) {}
void method7(MAIN_GUI *data, void (*mfree_adr)(void *)) {}
int method8(void) {return(0);}
int method9(void) {return(0);}
//============
//按鍵控制
//============
int method5 (MAIN_GUI *data, GUI_MSG *msg) {
    //if (msg->gbsmsg->msg==KEY_UP) //釋放按鍵時
    if ((msg->gbsmsg->msg == KEY_DOWN) || (msg->gbsmsg->msg == LONG_PRESS)) //按下鍵或者長按鍵時
        switch(msg->gbsmsg->submess) {
        case RED_BUTTON:
            return(1); //發生 generalFunc 流調用 GUI - > 關閉 GUI
        case UP_BUTTON:
            if (yy > 0) --yy; break;
        case LEFT_BUTTON:
            if (xx > 0) --xx; break;
        case DOWN_BUTTON:
            if (yy < 130) ++yy; break;
        case RIGHT_BUTTON:
            if ( xx < 120) ++xx; break;
        //case GREEN_BUTTON:
        //case RIGHT_SOFT:
        //case ENTER_BUTTON:
        //case LEFT_SOFT:
        //case VOL_UP_BUTTON:
        //case VOL_DOWN_BUTTON:
        //case '0':
        //case '9':
        //case '#':
        //SUBPROC((void *)DoDiskAccess,1);
        //降低其他處理的優先級以繪制窗口
        }
    DrawScreen();
    return(0);
}
const void *const gui_methods[11] = {
    (void *)method0, //Redraw
    (void *)method1, //Create
    (void *)method2, //Close
    (void *)method3, //Focus
    (void *)method4, //Unfocus
    (void *)method5, //OnKey
    0,
    (void *)method7, //Destroy
    (void *)method8,
    (void *)method9,
    0
};
const RECT Canvas={0,0,131,175};
void maincsm_oncreate(CSM_RAM *data) {
    MAIN_GUI *main_gui = malloc(sizeof (MAIN_GUI));
    MAIN_CSM *csm = (MAIN_CSM *)data;
    zeromem(main_gui, sizeof (MAIN_GUI));
    //ustk=malloc(STKSZ); //為程序分配內存
    //info_ws=AllocWS(512);
    main_gui->gui.canvas = (void *)(Canvas);
    main_gui->gui.flag30 = 2;
    main_gui->gui.methods = (void *)gui_methods; //基本方法(見上面)
    main_gui->gui.item_ll.data_mfree = (void (*)(void *))mfree_adr(); //我也不清楚:(
    csm->csm.state = 0;
    csm->csm.unk1 = 0;
    csm->gui_id = CreateGUI(main_gui); //直接創建 GUI
}
void Killer(void) { //退出程序
    extern void *ELF_BEGIN;
    //mfree(ustk); //釋放內存
    //FreeWS(info_ws);
    ((void (*)(void *))(mfree_adr()))(ELF_BEGIN);
}
void maincsm_onclose(CSM_RAM *csm) {
    //GBS_StopTimer(light_tmr);
    SUBPROC((void *)Killer);
}
int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) {
    return(1);
}
unsigned short maincsm_name_body[140];
const struct {
    CSM_DESC maincsm;
    WSHDR maincsm_name;
} MAINCSM = {
                {
                    maincsm_onmessage, //信息進程
                    maincsm_oncreate, //創建時調用的方法
                    //如果機型為 S75 移除以下4行
                    //并在 swilib.h 里取消對 #define NEWSGOLD 這行的注釋
                    //0,
                    //0,
                    //0,
                    //0,
                    maincsm_onclose, //關閉時調用的方法
                    sizeof (MAIN_CSM),
                    1,
                    minus11
                },
                {
                    maincsm_name_body,
                    NAMECSM_MAGIC1,
                    NAMECSM_MAGIC2,
                    0x0,
                    139
                }
            };
int main(char *exename, char *fname) {
    char dummy[sizeof (MAIN_CSM)];
    //strcpy(filename,fname); //保存數據到文件
    CreateCSM(MAINCSM.maincsm, dummy, 0);
    return 0;
}
]]>
Java替代C語言的可能性http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2399&Page=1wangxinxin2010-12-10 11:02:54

前不久CSDN刊登了一篇《C語言已經死了》的文章,引起了一些爭論。其實那篇文章是從Ed Burnette的博客上轉載來的,原文題目是“Die, C, die!”,直譯過來應該是《去死吧,C!》,表達的是一種詛咒,而不是判斷。翻譯稱《C語言已經死了》,顯然是一種煽風點火的誤讀。CSDN網友對于其觀點已經進行了批判,不過坦率地說,由于這些批判基于一個扭曲的翻譯文本,所以不但沒有什么新鮮的地方,而且也沒有抓住原作者的重點。

    實際情況是這樣的,最近一段時間,在國外的技術社群里刮起了一股風,不少人在討論Java做為C語言替代者而成為最主流的基礎軟件編程語言的可能性。從大部分人發表的觀點來看,對于Java替代C的趨勢還是支持的。

     基礎軟件是指這樣一類軟件,其主要任務是把計算機的潛能充分發揮出來,面向上層應用軟件提供一個高效、可靠的功能集。這些軟件會被密集地調用,性能上的一點點滯后都會在實踐中被成百上千倍的放大。所以對于基礎軟件來說,性能至少與可靠性一樣重要。我們在一些基礎軟件的源代碼里,常常看到一些丑陋的設計,看到一些變態的黑客技巧,在其他的領域里,這是不被鼓勵的,但是在基礎軟件中,這就是合理的,可以接受的。

     C語言目前仍在一些領域里堅挺,在操作系統、虛擬機和設備驅動程序開發方面,它可能是永遠的王者。但是在其他的基礎軟件領域,比如數據庫、網絡服務器、圖形圖像處理等,C語言繼續占據霸主地位的原因其實只有兩個,一是快,二是熟悉的人多,而且經驗豐富。

    但是這兩點現在都遭到了挑戰。

    首先是速度。Java的執行速度在JDK1.4的時候達到了這樣一個水平,就是對于一個一般水平的開發者來說,他寫的C++程序已經不再比對等的Java程序跑得更快了。隨后的JDK 5.0和6.0進一步提高了執行性能,由不同的組織舉行的多項評測結果表明,Java與C語言的整體執行效率差距在一倍以內,也就是說,素以速度著稱、并且為了速度放棄了很多東西的C語言,現在比裝備齊全的Java只快不到一倍了。這還不算,如果考慮到新的計算環境,C語言的速度優勢有可能僅僅是一個錯覺。因為,世界上只有很少的人有能力在多CPU計算平臺上用C語言寫出又快又正確的大程序,在這些人中間,又只有很少很少的人有能力用C語言寫出一個在大型的、異構的網絡環境下能夠充分發揮各節點計算能力的大規模并行程序。也就是說,你也許有能力把程序效能提高一倍,從而充分發揮一臺價值6000元人民幣的PC的計算潛力,為客戶節省1000元錢。但如果是在一個由1000臺機器組成的大型異構網絡并行計算的環境下,你寫的C程序恐怕性能還會遠遠低于對應的Java程序,更不要說巨大的后期維護成本,而由此帶來的損失可能是1000萬或者更多。

    其次是經驗。很多人都宣稱自己的C功力如何如何了得,但是實際上,即使是真正的C高手也不得不花相當可觀的時間來尋找并且調試錯誤,尤其是內存方面的錯誤。大部分用C寫的上規模的軟件都存在一些內存方面的錯誤,需要花費大量的精力和時間把產品穩定下來。這還沒有把安全方面的缺陷考慮在內,現在大部分的開發者在代碼安全方面的知識都很薄弱,安全漏洞在代碼中相當普遍,而在C語言中,這一不足暴露得格外明顯。最大的挑戰或許得說是并發問題了,并發是一個很復雜的問題,需要在相當高的抽象層面上解決,而C語言的抽象機制過于簡單,提供不了高層的抽象,因此在開發者只能從一些“并發原語”出發去構造并發程序,這跟用鉛筆刀鋸大樹沒什么分別,直截了當地說,大部分C程序員根本沒有能力編寫高效無缺陷的并發程序。

    所以殘酷的事實是,當一個人說自己的C語言如何了得,經驗如何豐富時,非常可能他說的是,自己在用C語言寫單機、單線程的,不會遭到外界攻擊的,在時間預算上沒有什么壓力,而且用戶能夠忍受一個很長的產品穩定期的應用程序方面非常有經驗。遺憾的是,市場環境和計算環境已經完全變化。面對更復雜的計算環境,用C語言來編寫高質量的大規模軟件,是只有真正的專家團隊才能完成的工作。如果你曾經有過連續數日苦苦追蹤和調試一個內存泄露、或者線程錯誤的經歷,你就會明白,你可能不是這樣的專家。

    相比之下,Java在抽象機制、基礎設施、安全和并發方面,與C語言比起來,就好像是馬克沁重機槍對弓箭。比如并發,Java 5.0加入的java.util.concurrent包,可能是目前主流語言中對于并發問題最強有力的支持庫。Java的內存管理和安全機制,也已經被實踐證明確實能夠有效地減少程序的缺陷。這也就是那篇詛咒文章的原文的意圖。

    所以,我的態度明確的,我認為Java替代C是一個進步的想法,不過世界上進步的想法很多,能夠美夢成真的卻寥寥無幾。Java是否真的能夠在基礎軟件領域強有力地替代C語言呢?我看至少短期內還做不到,原因如下:

1. 人的問題。能夠用C語言寫出優秀基礎軟件的人固然不多,能用Java寫出來的人恐怕更少。Java有好幾百萬開發者,但是他們在干什么?大部分是去搞企業級開發、Web開發了,有多少人真的理解Java的內存模型?有多少人能夠熟練使用concurrent包中提供的那些工具?很多使用Java多年的人沒有寫過socket程序,不了解Java多線程的開銷,不清楚如何進行性能診斷和調優,而這些在寫基礎軟件的時候是必備的技能。大部分Java程序員在剛剛學會Java之后就轉向Web開發,把主要精力花費在掌握一個又一個大型的、復雜的、具有厚厚的抽象層和華麗結構的frameworks上,不但對真實計算機體系結構不清楚,對于Java虛擬出來的那個計算環境也不清楚。因此,要把Java社群編程轉變成能夠擔負起下一代基礎軟件開發工作的尖兵,不但難度很大,而且必須花費足夠的時間。

2. Java的內存消耗太大。對于系統級程序來說,內存消耗大,就意味著cache命中率降低,與磁盤交換數據的可能性增大,對性能的影響還是比較嚴重的。現在很多人還是覺得Java慢,主要的原因已經不是Java跑得慢,而是由于內存消耗過大導致的綜合性能下降。這個問題不解決,Java就只能用來做一些比較上層的基礎軟件。也許隨著計算機硬件的發展,這個問題會逐步得到解決?

3. 風格的問題。這個問題我認為是最嚴重的。基礎軟件開發崇尚的是自由、直接、透明、簡單、高效,要像匕首一樣鋒利,像戰士一樣勇猛,像農夫一樣樸實,反對繁瑣華麗的設計,反對架床迭屋的層層抽象,反對復雜的結構和不必要的靈活性。而Java社群多年來形成的設計風格與此格格不入,甚至可以說是對立的。Java在意識形態上是要面向企業應用軟件的開發,所以特別強調架構,強調設計模式,強調標準,強調規規矩矩,強調高姿態,強調一種華貴的宮廷氣質。在C中,你吃飯就是吃飯,捧起碗來喝酒,放下筷子罵娘,甩開膀子抓肉,擼起袖子抹油。而在Java中,你經常為了要干某件事,先new一個對象,然后以這個對象為參數new另一個對象,如此這般重復n遍,得到真正需要的對象,最后就是為了調用那個對象的一個方法,就好比吃飯時焚香洗面,漱口凈手,戰戰兢兢,畢恭畢敬。在C中,遇到問題要像亡命徒,像流氓版程咬金,管你三七二十一,沖上去就是三板斧,還怕劈不死你丫的。在Java里,遇到問題要像宋襄公,要張榜檄文,要名正言順,要禮儀之邦,要把架子拉開了,把譜兒擺足了。Java的口號是,不管劈不劈的死,先把你小子感動了再說。 這套繁瑣的東西,對于基礎軟件開發來說,既不必要,也很難習慣。需要說明的是,這不是Java語言的問題,其實Java本身不必如此復雜、如此巴洛克。從語言本身來看,Java也可以是輕快直接的,也可是酣暢淋漓的。只不過十多年來幾乎沒有人這樣用過,所以大家已經不知道:如果不來個一步三叩首,那么該怎么用Java寫程序?

    正是因為上面的這種種原因(可能還不全面),直到最近,第一流的基礎軟件幾乎都還是C語言編寫的,或者至少其核心部分還是以C為主。而且我認為,在短期內,這種局面不會有大的改變。當然,如果Java社群能夠克服上面的這些問題,充分發揮出Java本身的優勢,在基礎領域開發出一大批一流的支撐軟件,那么局面是可以改變的,而且這種改變也是進步的,值得歡迎的

]]>
一個簡單的一箭穿心程序http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2398&Page=1wangxinxin2010-12-10 10:29:29#include<graphics.h>
#include<math.h>  
#define FNX(x1) (int)(x (x1)*sl)
#define FNY(y1) (int)(MAXY-(y (y1)*sl))
#define R(theta) 1-pow(cos(1*theta),1)  
int sl=50,MAXY;
float x1,y1,xs,ys,r,theta;
/*畫心*/
void draw(int x,int y)
{
for(theta=0;theta<2*3.14;theta =0.01)
{r=R(theta);
  x1=r*sin(theta);y1=r*cos(theta);
  xs=FNX(x1);ys=FNY(y1);
  if(theta==0)moveto(xs,ys);else lineto(xs,ys);
}
}  
/*畫箭頭*/
void jian()
{
line(205,235,200,240);
line(200,240,205,245);
line(200,240,214,240);
line(400,240,500,240);
line(485,235,480,240);
line(480,240,485,245);
line(490,235,485,240);
line(485,240,490,245);
line(495,235,490,240);
line(490,240,495,245);
line(500,235,495,240);
line(495,240,500,245);
line(505,235,500,240);
line(500,240,505,245);
line(485,235,505,235);
line(485,245,505,245);
}
/*主程序*/
main()
{int driver=DETECT,mode;
initgraph(&driver,&mode,"");
setbkcolor(1);
setcolor(4);
MAXY=getmaxy();
draw(280,280);/*左心*/
draw(370,280);/*右心*/
jian();
  getch();
closegraph();
}


看到大家討論對編程好不關系的話題,真的感到失望,如果你不是來學習的,請不要回復本貼,但也看到大家對于一些人生攻擊的醒悟,
象 Momoass 能用公平的態度來對待大家的發言.
    converse (創系) 也來勸大家說話和氣.
   相信他們這樣的人才有成功的品質,非常熱情,做事情就需要這樣的人.
]]>
C語言中有幾個不懂http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2397&Page=1wangxinxin2010-12-10 10:27:23[討論]C語言中有幾個不懂
議題作者:爆米花
信息來源:邪惡八進制信息安全團隊(www.eviloctal.com

本人絕對不是灌水的垃圾貼,本人初學C語言 其中之不懂地方很多,對于邪八這里,高手如云,我就怕發的貼被當作廢貼,其實其他論壇我也可以去發,但是給我發回復層次不齊,惟獨邪八回復的 技術含量頗高,所以硬頭皮來發貼,本人第一次發貼,我要把該講的講清楚,請大師記住我的名字,這樣以后我發的我覺得難的問題的帖子就不會被當廢貼了,好謝謝不講了我發以下內容求高手回復
    編寫一個C程序,輸入a,b,c 3個值,輸出其中最大者
        #include<stdio.h>
       void main()
       {int a,b,c,max;     ←我能理解的是 int(機器語言) a b c 哪個最大
        printf("please input a,b,c:\n");    ←printf(機器語言) 請輸入a b c 回車
        scanf("%d,%d,%d,&a,&b,&c");    ←scanf(機器語言)  后面的%d,%d,%d,&a,&b,&c 到底表達個什么意思我就不知道了
        max=a;    ←從這后面我就不知道 講的是什么意思了 怎么能夠理解呢
        if(max<b)    ←如果a<b a=b
           max=b;
        if(max<c)     ←如果a<c a=c
           max=c;
        printf("the largest number is %d",max);    最大的數是%d ?????不懂 誰能幫我解釋一下啊 這是C語言第2頁的內容        我就這個樣子 怎么辦!!!!!!!!!
       }
]]>
如何學習C語言的指針http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2396&Page=1wangxinxin2010-12-10 10:15:37  (*ptr)++;
  ptr++; } 這個例子將整型數組中各個單元的值加1。由于每次循環都將指針ptr加1,所以每次循環都能訪問數組的下一個單元。再看例子: 例四: 1、chara[20]; 2、int*ptr=a;   ...
  ... 3、ptr+=5; 在這個例子中,ptr被加上了5,編譯器是這樣處理的:將指針ptr的值加上5乘sizeof(int),在32位程序中就是加上了5乘4=20。由于地址的單位是字節,故現在的ptr所指向的地址比起加5后的ptr所指向的地址來說,向高地址方向移動了20個字節。在這個例子中,沒加5前的ptr指向數組a的第0號單元開始的四個字節,加5后,ptr已經指向了數組a的合法范圍之外了。雖然這種情況在應用上會出問題,但在語法上卻是可以的。這也體現出了指針的靈活性。 如果上例中,ptr是被減去5,那么處理過程大同小異,只不過ptr的值是被減去5乘sizeof(int),新的ptr指向的地址將比原來的ptr所指向的地址向低地址方向移動了20個字節。 總結一下,一個指針ptrold加上一個整數n后,結果是一個新的指針ptrnew,ptrnew的類型和ptrold的類型相同,ptrnew所指向的類型和ptrold所指向的類型也相同。ptrnew的值將比ptrold的值增加了n乘sizeof(ptrold所指向的類型)個字節。就是說,ptrnew所指向的內存區將比ptrold所指向的內存區向高地址方向移動了n乘sizeof(ptrold所指向的類型)個字節。 一個指針ptrold減去一個整數n后,結果是一個新的指針ptrnew,ptrnew的類型和ptrold的類型相同,ptrnew所指向的類型和ptrold所指向的類型也相同。ptrnew的值將比ptrold的值減少了n乘sizeof(ptrold所指向的類型)個字節,就是說,ptrnew所指向的內存區將比ptrold所指向的內存區向低地址方向移動了n乘sizeof(ptrold所指向的類型)個字節 運算符&和* 這里&是取地址運算符,*是...書上叫做"間接運算符"。 &a的運算結果是一個指針,指針的類型是a的類型加個*,指針所指向的類型是a的類型,指針所指向的地址嘛,那就是a的地址。 *p的運算結果就五花八門了。總之*p的結果是p所指向的東西,這個東西有這些特點:它的類型是p指向的類型,它所占用的地址是p所指向的地址。例五: inta=12; intb; int*p; int**ptr; p=&a; //&a的結果是一個指針,類型是int*,指向的類型是int,指向的地址是a的地址。 *p=24; //*p的結果,在這里它的類型是int,它所占用的地址是p所指向的地址,顯然,*p就是變量a。 ptr=&p; //&p的結果是個指針,該指針的類型是p的類型加個*,在這里是int **。該指針所指向的類型是p的類型,這里是int*。該指針所指向的地址就是指針p自己的地址。 *ptr=&b; //*ptr是個指針,&b的結果也是個指針,且這兩個指針的類型和所指向的類型是一樣的,所以用&b來給*ptr賦值就是毫無問題的了。 **ptr=34; //*ptr的結果是ptr所指向的東西,在這里是一個指針,對這個指針再做一次*運算,結果就是一個int類型的變量。 指針表達式 一個表達式的最后結果如果是一個指針,那么這個表達式就叫指針表式。下面是一些指針表達式的例子: 例六: inta,b; intarray[10]; int*pa; pa=&a; //&a是一個指針表達式。 int**ptr=&pa; //&pa也是一個指針表達式。 *ptr=&b; //*ptr和&b都是指針表達式。 ]]>
單片機的C語言中數組的用法http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=62&ID=2395&Page=1wangxinxin2010-12-10 10:12:35

數組是由具有相同類型的數據元素組成的有序集合。數組是由數組名來表示的,數組中的數據由特定的下標來唯一確定。引入數組的目的,是使用一塊連續的內存空間存儲多個類型相同的數據,以解決一批相關數據的存儲問題。數組與普通變量一樣,也必須先定義,后使用。數組在C51語言的地位舉足輕重,因此深入地了解數組是很有必要的。下面就對數組進行詳細的介紹。

1)一維數組

一維數組是最簡單的數組,用來存放類型相同的數據。數據的存放是線性連續的。

用以下例程說明數組的建立、數據操作:

[size=#]#include



[size=#]unsigned char array[10];//定義一個有10個單元的數組


[size=#]void main()

[size=#]{

[size=#]unsigned char i;

[size=#]for(i=0;i<10;i++)

[size=#]{

[size=#]array=i; //用下標調用數組中的元素

[size=#]}


[size=#]while(1);

[size=#]}

數組名是用來表示數組的標識,其實它是數組的首地址,即一個指針。不過它所表示的地址是固定的,不能改動。如前幾章所述的相關內容,array[2]*(array+2)是等效的,不過不能用array++,因為array是常量。

上面[size=#]的程序中的數組是靜態建立的,以下例程來用說明數組的動態建立。

[size=#]#include

[size=#]#include




[size=#]unsigned char *parray;


[size=#]void main()

[size=#]{

[size=#]unsigned char i;

[size=#]parray=(unsigned char *)malloc(10); //動態創建一個數組

[size=#]for(i=0;i<10;i++)

[size=#]{

[size=#]parray=i; //向數組中賦值

[size=#]}

[size=#]free(parray); //釋放數組

[size=#]while(1);

[size=#]}

[size=#]字符串是數組的一個重要特例。它的每個單元的數據均為字符類型(char),最后一個單元為'\0'0x00[size=#]),用來表示字符串的結束。C51函數庫中提供了專門對字符串進行處理的函數,用以下例程說明:

[size=#]#include

[size=#]#include




[size=#]char s[]={'y','a','h','o','o','\0'};

[size=#]//定義一個字符串,并對它進行初始化,以'\0'結束


[size=#]void main()

[size=#]{

[size=#]char s_temp[10];

[size=#]strcpy(s_temp,s);//strcpy位于string.h頭文件中,實現字符拷貝

[size=#]//s為一個常量,不能s++

[size=#]strcpy(s_temp,"yahoo");//與上面的語句等效

[size=#]while(1);

[size=#]}

[size=#]以下列出幾種字符串的靈活用法,希望能夠幫助讀者深入了解字符串:

[size=#]#include

[size=#]#include





[size=#]char *get_sub_string(char *s,unsigned char n)

[size=#]{

[size=#]int i;int d=0;int fore=0;

[size=#]int len=strlen(s);

[size=#]for(i=0;i< FONT>

[size=#]{

[size=#]if(s==',')

[size=#]{

[size=#]s='\0';

[size=#]d++;

[size=#]if(d==n)

[size=#]{

[size=#]return s+fore;

[size=#]}

[size=#]else

[size=#]{

[size=#]fore=i+1;

[size=#]}

[size=#]}

[size=#]}

[size=#]return NULL;

[size=#]}


[size=#]void main()

[size=#]{

[size=#]unsigned char c;

[size=#]char string[20];

[size=#]c="yahoo"[2]; //c='h'


[size=#]strcpy(string,"123,234,345,456");

[size=#]strcpy(string,get_sub_string(string,2));

[size=#]while(1);

[size=#]}

[size=#](2)二維數組

[size=#]可由兩個下標確定元素的數組就稱為二維數組。其定義的一般形式為:

類型說明符 數組名[常量表達式1][常量表達式2]

例如:int array[6][4];

定義了一個二維數組array,有64列,共24個元素。

兩個方括號中的常量表達1與常量表達式2規定了數組的行數與列數,從而確定了數組中的元素個數。行下標從0開始,最大為5,6;列下標也從0開始,最大為3,共4列。數組中共有6X4=24個元素,具體如下表示:

array[0][0]
array[0][1]
array[0][2]
array[0][3]
array[1][0]
array[1][1]
array[1][2]
array[1][3]
array[2][0]
array[2][1]
array[2][2]
array[2][3]
array[3][0]
array[3][1]
array[3][2]
array[3][3]
array[4][0]
array[4][1]
array[4][2]
array[4][3]
array[5][0]
array[5][1]
array[5][2]
array[5][3]

實際使用時,可以把上述二維數組看作一個64列的矩陣,是一個平面的二維結構。那么編譯程序是如何用一[size=#]維的存儲空間給這樣一個二維結構分配連續的存儲單元的呢[size=#]C51采用按行存放的方法,即在內存中先存放第0行元素,再存放第1行、第2行、......元素,每行中先存放第0列,接著存放第1列、第2列、......的元素。

[size=#]#include

[siz=#]#include




[size=#]void main()

[size=#]{

]]>
主站蜘蛛池模板: 久夜精品 | 免费毛片看| 在线观看一区视频 | 五月激情综合婷婷 | 国产合集 | 一二三四社区在线高清观看8 | 裸体丰满少妇做受久久99精品 | 欧美69影院 | 日日夜夜爱| 亚洲免费成人在线 | 国产亚洲欧美日韩在线一区二区三区 | 另类国产精品一区二区 | 中文成人精品久久一区 | 一区二区精品国产 | 日韩中文字幕在线一区二区 | 成人情侣激情偷拍视频 | 九九热线有精品视频 | 成人精品18m国产免费网站 | 最新中文字幕免费视频 | 亚洲一级一级 | 亚洲欧美日韩_欧洲日韩 | 亚洲三级成人 | 综合色婷婷一区二区亚洲欧美国产 | 欧美黄色大片免费 | 18禁裸体动漫美女无遮挡网站 | 无码国产精品高潮久久9 | 天堂va欧美ⅴa亚洲va在线 | 国产精彩亚洲中文在线 | 久久看av | 国产乱xxxxx97国语对白 | 亚洲一区国产一区 | 中文字幕av久久激情亚洲精品 | 国产一区二区三区在线2021 | 欧美色就是色 | jjzz日 | 97无码免费人妻超级碰碰夜夜 | 久久网页 | 久久综合日本 | 久一视频在线 | 久久亚洲精品无码网站 | 欧美午夜性春猛交ⅹxxxh | 高清国产在线 | 亚洲色图综合 | 99久久婷婷 | 医院人妻闷声隔着帘子被中出 | 午夜亚洲理论片在线观看 | 无码专区一ⅴa亚洲v专区在线 | bt天堂新版中文在线地址 | 超碰在线网 | 国产女人高潮叫床免费视频 | 超碰在线小说 | 久久精91久久88香蕉国产 | 国精产品一区一区三区mba视频 | 国产精品久久久久久久裸模 | 中文字幕38页 | 999久久国精品免费观看网站 | 日韩欧美视频在线播放 | 亚洲精品美女久久久久久久 | 久久免费精品视频 | 国产精品麻豆成人av电影艾秋 | 欧美日韩v | 婷婷亚洲综合 | 久久久久久久久久久91 | 99国产揄拍国产精品人妻 | 成人无码www免费视频 | 五月婷婷综 | 亚洲精品色在线网站 | 国产亚洲午夜高清国产拍精品 | 超碰人人干 | 国产精品综合av一区二区国产馆 | 日本三级吃奶头添泬 | 五月天在线播放 | 久久香蕉国产线看观看手机 | 国产在线青青草 | 无码免费毛片手机在线无卡顿 | 亚洲国产欧美人成 | 欧美极品jizzhd欧美爆 | 色综合视频网 | 猫咪av成人永久网站网址 | 日韩精品一区二区三区中文不卡 | 日操| 宝贝av| 少妇邻居内射在线 | 亚洲大尺度无码无码专区 | 黄色在线免费观看 | 午夜理伦三级理论 | 丰满大肥奶肥婆bbbwww | 人妻夜夜爽天天爽一区二区 | 亚洲狼人伊人中文字幕 | 亚洲一区二区在线视频 | 久久不见久久见www电影免费 | av在线专区| 国产免费a∨片同性同志 | 久久人| 久久中文字幕伊人小说小说 | 久久久久久久岛国免费观看 | 无码 人妻 在线 视频 | 亚洲高清在线视频 | 超碰人人擦 | 午夜dv内射一区二区 | 爱情岛免费永久网站 | 国产精品久久久久毛片软件 | 伊人av超碰伊人久久久 | 成年人免费看片 | 午夜亚州| 国产成人精品a视频一区 | 就爱啪啪网站 | 久久人人97超碰爱香蕉 | 91女女互慰吃奶在线 | 国产精品va在线观看无码不卡 | 99热偷拍 | 国产成人精品免费视频大 | 欧洲在线一区 | 国内精品免费 | 与子乱对白在线播放单亲国产 | 久久97精品 | 91人人澡| 成人精品一区二区三区在线观看 | 欧美黄在线 | 爱爱一区二区三区 | 天天鲁夜夜免费观看视频 | 在线免费观看av的网站 | 成人国产精品一区二区网站 | 狠狠色综合色综合网站久久 | 亚洲成a人v欧美综合天堂麻豆 | 亚洲中文字幕日产乱码高清 | 亚洲欧美在线观看视频 | 男人的天堂网页 | 久久久一本 | 精品 亚洲 无码 自拍 另类 | 亚洲图片另类图片激情动图 | 天天干天天拍 | 中文字幕第一页在线 | 久久久久国产精品人妻aⅴ天堂 | 久久99久久99精品 | 欧美 日韩 亚洲 在线 | 色综合久久中文娱乐网 | 色欲av巨乳无码一区二区 | 国产精品玖玖玖在线 | 久久綾合久久鬼色88 | 无人区乱码一区二区三区 | 91ts国产人妖系列 | 婷婷深爱网 | 97久久天天综合色天天综合色hd | 国内免费毛片 | 免费久久99精品国产婷婷六月 | 无码人妻一区二区三区麻豆 | 日韩av在线不卡 | 免费在线视频一区 | 日本欧美久久久久免费播放网 | 国产真实强被迫伦姧女在线观看 | 成人人人人人欧美片做爰 | 日韩av网站在线播放 | 国产精品中文字幕av | 绯色一区二区三区 | 影音先锋一区 | 国产精品99久久久久人最新消息 | 久久久久97| 亚洲三区在线观看内射后入 | 熟睡中被义子侵犯在线播放 | 美女狠狠操 | 狠狠爱夜夜 | 国产在线一区二区三区av | 国产丝袜足j在线视频播放 久久鬼色 | 亚洲天堂网2020| 午夜国产精品入口 | 人妻avav中文系列久久 | 国产美女视频网站 | 手机在线欧美 | 无线日本视频精品 | 亚洲综合91 | 久啪视频 | 丁香五月婷激情综合第九色 | 经典三级伦理另类基地 | 成人欧美大片 | 少妇放荡的呻吟干柴烈火动漫 | 青青草成人免费视频 | 日日夜夜超碰 | 在线看免费毛片 | 98色精品视频在线 | 亚洲国产成人久久综合区 | 99久久免费精品国产72精品九九 | 欧美日韩免费视频 | 久久免费精品视频 | 一本色道久久88精品综合 | 欧美成人精品网站 | 欧美三级在线看 | 日本又黄又猛又爽免费视频 | 西西人体午夜大胆无码视频 | 国产精品人成视频免 | 亚洲精品一区二区三区的 | 五月久久久综合一区二区小说 | 亚洲综合图片区自拍区 | 日韩不卡视频在线 | 黄色一及毛片 | 美女网站免费福利视频 | 国产成本人片无码免费 | 亚洲图片自拍偷图区 | 永久黄网站色视频免费直播 | 精品国产一二三区 | 色综合视频在线观看 | 久久大香香蕉国产免费网动漫 | 黄色录相一级片 | 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | av免费不卡国产观看 | 成人国产三级在线观看 | 久久久久人妻一区精品 | 尤物精品国产第一福利网站 | 国产熟女亚洲精品麻豆 | 国产中文在线播放 | 97自拍偷拍视频 | 免费国产一区二区三区 | 日本人与黑人做爰视频网站 | 色悠久久久久综合欧美99 | 快射视频网 | 欧美jizzhd精品欧美巨大免费 | 免费av黄色 | 天堂资源在线中文 | 欧美第一页 | 男女无遮挡羞羞视频 | 在线天堂中文官网 | 阿v天堂2018| 亚洲一区视频在线播放 | 日产国产精品亚洲系列的特点 | 欧美人成片免费观看视频 | 欧美一级不卡视频 | 久久欧美精品久久天美腿丝袜 | 中文字幕www. | 欧美浪妇xxxx高跟鞋交 | 色偷偷女人的天堂亚洲网 | 久草精品视频 | 亚洲天堂av在线播放 | 一区二区免费视频 | 一级片特级片 | 一本大道av伊人久久综合 | 3d成人性动漫无尽视频 | 99精品产国品一二三产区 | 欧美xxxx做受欧美 | 成人羞羞国产免费动态 | 国产sm鞭打折磨调教视频 | 中文字幕一区二区三区波多野结衣 | 日韩午夜精品免费理论片 | 国产一卡三卡四卡无卡精品 | 嫩草网在线观看 | 中文字幕日韩精品亚洲一区小树林 | 青青青国产视频 | 最新系列国产专区|亚洲国产 | 成人av一区二区三区在线观看 | 午夜久久久久久久久久久久久捆绑 | 无码专区男人本色 | 一本色道久久综合狠狠躁篇 | 香蕉久久久久久久av网站 | 欧美 日韩 国产 亚洲 色 | 国产精品不卡一区二区三区 | 在线看片日韩 | 无码字幕av一区二区三区 | 国产黄色av片 | 97超碰国产精品无码分类 | 久久中文字幕人妻熟女凤间 | 欧美日韩一区二区三区在线 | 中文字幕无码乱人伦在线 | 综合婷婷| 成人精品视频在线观看不卡 | 国产精品无码久久久久久久久久 | 亚洲女久久久噜噜噜熟女 | 日韩av激情| 嫩草网站在线观看 | 国产精品视频一 | 国产黄a三级三级三级 | 久久在精品线影院 | 88国产精品久久现线拍久青草 | 乌克兰xxxxx少妇精品二区 | 亚洲国产精品成人综合久久久 | 国产中老年妇女精品 | 亚洲乱码精品 | 久久先锋男人av资源网站 | 网址av | 精品婷婷 | 丝袜 国产 日韩 另类 美女 | 最新系列国产专区|亚洲国产 | 久久久久久久久久久久亚洲 | 国产午夜羞羞小视频在线观看免费 | 久久99国产亚洲高清观看首页 | 欧美成人视 | 欧美一区自拍 | 亚洲综合久久成人a片红豆 黄色在线免费播放 | 国产乱子影视频上线免费观看 | 天堂国产欧美一区二区三区 | 人人妻人人澡人人爽欧美一区 | 少妇福利视频 | 四川少妇被弄到高潮 | 亚洲综合伦理 | 成年女人18级毛片毛片免费 | 综合xx网| av在线免费不卡 | 欧美色另类 | 亚洲国产日韩在线视频 | 91手机在线视频 | 黄色三级在线视频 | 爽妇网国产精品 | 亚洲精品成人片在线观看 | 色噜噜狠狠爱综合视频 | 久久自己只精产国品 | 亚洲国产成人综合在线观看 | 久久精品国产99国产精品 | 无码一区二区免费波多野播放搜索 | 国产黄| 男女免费观看在线爽爽爽视频 | 999国产精品999久久久久久 | 久久久久久久久无码精品亚洲日韩 | 性史性高校dvd毛片 浪潮av一区二区 | 日日夜夜91 | 日韩com | 伊人久久在线 | 成人精品区| 国产精品青青青在线观看 | 色久网| 偷拍男女做爰视频免费 | 欧美日韩亚 | 麻豆精品一区二区三区在线观看 | 中文久久久久 | 操操日日 | 日韩在线视频在线观看 | 特黄特级毛片免费视频 | 欧美精品亚洲 | 欧美老肥熟 | 日本成熟视频免费视频 | 亚洲欧美在线视频观看 | 色综合加勒比 | 亚洲不卡视频在线观看 | 毛片基地站 | 国产精品1000 | 国产美熟女乱又伦av果冻传媒 | 亚洲人毛茸茸bbxx | 精品麻豆国产色欲色欲色欲www | 色屁屁xxxxⅹ在线视频 | 国模一区二区三区 | 亚洲熟妇av乱码在线观看 | а天堂中文地址在线 | 精品免费国产一区二区三区四区介绍 | 19禁无遮挡啪啪无码网站 | 久久网中文字幕 | 国产一区二区福利 | 欧美性白人极品1819hd | 51自拍视频在线观看 | 日韩h片 | 嫩草影院入口 | 4hu新地址 | 国内国内在线自偷第68页 | 日本三级黄色中文字幕 | 日韩欧美在线免费视频 | 好吊妞视频788gao在线观看 | 久久精品国产第一区二区三区 | 天天色播 | 激情偷乱人成视频在线观看 | 伊人久久精品久久亚洲一区 | 美女下半身无遮挡免费网站 | 亚洲综合精品一区二区三区 | 久久久久久久久久网 | 好爽好湿好硬好大免费视频 | 午夜国产一级片 | 日韩毛片大全 | 丰满老女人乱妇dvd在线播放 | 高清国产mv视频在线观看 | 久久99精品久久久久久吃药 | 欧美综合影院 | 国产乱肥老妇女精品视频网站 | 护士张开腿被奷日出白浆 | 久久精品九九亚洲精品天堂 | 日日日干 | 欧美、另类亚洲日本一区二区 | 国语国产精精品国产国语清晰对话 | 性开放视频 | 国内精品久久久久影院日本资源 | 黄色一级免费片 | 日韩一区二区免费在线观看 | 不卡一区在线 | 日韩精品免费在线 | 欧美狠狠 | 欧美寡妇性猛交xxx片 | www.精品国产 | 97人妻碰碰视频免费上线 | 日本免码va在线看免费 | 女狠狠噜天天噜日日噜 | 久久99精品久久久久久蜜芽 | 国产精品无码a∨精品影院 国产精品女主播 | 人妻无码人妻有码中文字幕 | 欧美特级婬片毛多的少妇 | 亚洲精品视频在线观看视频 | 大地资源中文在线观看官网第二页 | 久草热在线观看 | 2021国产精品久久久久青青 | 国产l精品国产亚洲区久久 国产成人无码区免费内射一片色欲 | 好疼太大了太粗太长了视频 | 男女啪啪免费观看的网址 | 中文字幕日韩专区 | 性少妇无码播放 | www.伊人 | 日韩avwww | 国产免费mv大片人人电影播放器 | 牲交欧美兽交欧美 | 亚洲高清成人aⅴ片777 | 国产精品亚洲综合一区二区三区 | 精品久久久久久久久久岛国gif | 天天天天天天操 | 香蕉久久一区二区三区啪啪 | 成在人线av无码免费漫画 | 日韩亚洲欧美中文高清 | 国产精品久久久久7777按摩 | 日韩精品 中文字幕 视频在线 | 国产成人精品三级在线影院 | 亚洲欧美国产成人综合不卡 | 日本无遮挡吸乳视频 | 久久久噜噜噜www成人网 | 九九九久久国产免费 | 污污内射久久一区二区欧美日韩 | 精品国产一区二区三区不卡在线 | 黄色片免费在线观看 | 嫩草影院一区二区 | 999成人精品视频在线 | 麻豆av无码蜜臀av | 亚洲色大成网站www永久一区 | 国产亚洲日韩a欧美在线人成 | 成人黄色激情小说 | 视频精品一区二区 | 久久久精品免费 | 亚洲成在线 | 亚洲aⅴ欧洲av国产综合图片 | 国产a一级片 | 欧美日本免费一区二区三区 | 亚洲一区福利视频 | 久久人人爽人人爽人人爽 | 宅宅午夜无码一区二区三区 | 又色又爽又黄高潮的免费视频 | 91精品国产乱码久久久 | 天天曰天天干 | 亚洲欧美偷拍另类a∨ | 久久天天躁狠狠躁夜夜爽 | 国产精品久久久久久久蜜臀 | 欧美成人午夜免费视在线看片 | 午夜激情福利在线 | 小说区亚洲综合第1页 | 小早川怜子久久精品中文字幕 | 亚洲综合无码精品一区二区 | 欧美精品播放 | 久久久亚洲欧洲日产av | 久久 国产 人妖 系列 | 久久视频在线观看免费 | 一边摸一边抽搐一进一出口述 | 久久精品日产第一区二区三区 | 激情五月婷婷久久 | 男女床上激情网站 | 精品无码国产污污污免费 | 午夜天堂av| 亚洲免费av在线 | 久久午夜无码鲁丝片秋霞 | 都市激情国产 | 日韩电影久久久被窝网 | 亚洲国产天堂av | 91ts人妖另类精品系列 | 久久国产精品娇妻素人 | av无码欧洲亚洲电影网 | 亚洲欧美日韩v在线观看不卡 | 久久久精品波多野结衣av | 国内精品国内自产视频 | 亚洲欧美综合精品久久成人 | 国内精品一区二区三区在线观看 | 色站综合 | 日本一区二区视频在线播放 | 亚洲精品国产v片在线观看 国产精品久久久久久久久免费看 | 国产又黄又粗又硬又爽又猛的视频 | av无码久久久久久不卡网站 | 国产三级国产精品国产国在线观看 | 亚洲视频1区 | 亚洲国产精品无码久久九九大片 | 日本三级线观看 视频 | 成人美女黄网站色大色费全看在线观看 | 52avaⅴ我爱haose免费视频 | 又粗又猛又大爽又黄老大爷5 | 91插插插永久免费 | 亚洲天堂自拍偷拍 | av日韩精品 | 欧美区视频 | 99re8精品视频热线观看 | 国产精品96久久久久久 | 天天躁夜夜躁狠狠躁2021牛牛 | 精品在线91| 国产一级视频免费观看 | 欧美国产日韩在线视频 | 国产亚洲高清视频 | 国内精品久久久人妻中文字幕 | 免费看小12萝裸体视频国产 | 日本中文一区 | 久久不见久久见www日本网 | 无码少妇一区二区三区免费 | 91av一区二区三区 | 日韩国产高清一区二区 | jdav精品视频在线观看 | 成人免费视频久久 | 久久久无码精品亚洲日韩蜜臀浪潮 | 国产精品丝袜黑色高跟鞋 | 国产视频在线免费 | 精品国产自在精品国产浪潮 | 91久久精品日日躁夜夜躁国产 | 99热成人精品热久久 | 欧美激情精品久久久久久 | 国产午夜激无码av毛片 | 日韩一区免费 | 伊人影院网 | 洗澡被公强奷30分钟视频 | 久久成人国产精品入口 | 99热这里只有精品首页 | 久久婷婷五月综合色国产免费观看 | 99热亚洲| 亚洲精品av无码重口另类 | 国产交换配乱淫视频α | 性高朝大尺度少妇大屁股 | 亚洲日韩欧美一区、二区 | 国产偷人妻精品一区 | 久久久久极品 | 日本无码人妻一区二区色欲 | 亚洲色欲综合一区二区三区 | 天天影视网色香欲综合网 | 仙踪林久久久久久久999 | 西西人体做爰大胆性自慰 | 99久久免费看少妇高潮a片 | 国产成人艳妇aa视频在线 | 色宅男看片午夜大片啪啪 | 一区国产精品 | 欧美黑人粗大 | 国产精品18禁污污网站 | 亚洲精品日韩av专区 | 40岁成熟女人牲交片 | 国产精品不卡一区二区三区 | 第一页综合 | 日本丰满熟妇bbxbbxhd | 国产亚洲综合区成人国产 | 一区三区视频在线观看 | 国产精品久久亚洲7777 | 被拉到野外强要好爽黑人 | 精品伊人| 午夜影院在线免费观看 | 国产边摸边吃奶边叫做激情视频 | 偷拍老熟妇和小伙xxxx视频 | 男女一边摸一边做爽爽的免费阅读 | 国产色在线 | 国产 无码一区二区三区爆白浆 久草免费手机视频 | 天堂在线最新版资源www中文 | 日本在线视频免费观看 | 各种少妇正面bbw撒尿 | 在线香蕉视频 | 久久999 | 少妇精品噜噜噜噜噜av | 夜夜看| 偷窥 亚洲 色 国产 日韩 | 欧美黄在线 | 亚洲爆乳aaa无码专区 | 97亚洲欧美国产网曝97 | 日本一二三四区视频 | 啊啊啊快高潮了女超碰 | aaaaa亚洲| 午夜精品久久久久99热蜜桃导演 | 国产美女脱的黄的全免视频 | 韩国大尺度吃奶做爰 | 午夜片无码区在线观看视频 | 久久精品国产精油按摩 | 国产真实强奷网站在线播放 | 亚洲国产色视频 | 精品水蜜桃久久久久久久 | 久天堂| www.青青 | 北条麻妃一区二区三区在线 | 亚洲男人的天堂在线观看 | 欧美日本视频在线观看 | 色婷婷小说 | 精品国产精品国产自在久国产 | 99久久精品无码一区二区毛片 | 亚洲成人精选 | 成人精品毛片国产亚洲av十九禁 | 全程粗话对白视频videos | 玖玖资源站最稳定网址 | 精品无码久久久久久久久久 | 97国产大学生情侣白嫩酒店 | 国产拍揄自揄精品视频 | 精品乱人伦 | 成人精品一区二区户外勾搭野战 | 国产69堂免费视频 | 国产美女精品自在线拍免费下载出 | 浪潮av激情高潮国产精品 | 免费视频欧美无人区码 | 女人摸下面自熨视频在线播放 | 香蕉大美女天天爱天天做 | 精品无码一区二区三区av | 激情文学久久 | 漂亮人妻去按摩被按中出 | 成人午夜国产内射主播 | 与子乱对白在线播放单亲国产 | 老司机精品久久 | 亚洲一区综合图区 | 中国黄色一级片 | 欧美成人免费高清视频 | 国产又色又爽又黄好看的视频 | 日韩激情网站 | 免费观看潮喷到高潮大叫网站 | 亚洲天堂区| 日本中文字幕一区二区高清在线 | 色月丁香 | 日韩欧美精品在线观看 | 色欲色欲久久综合网 | 亚洲精品久久久久国产剧8 日韩欧美一区二区三区不学 | 99精品免费观看 | b站永久免费看片大全 | 十八禁在线观看视频播放免费 | 欧美爱爱视频免费 | 免费看日本 | 国产精品久久久久久久久免费丝袜 | 小小拗女性bbwxxxx国产 | 亚洲网老鸭窝男人的天堂 | 西西午夜无码大胆啪啪国模 | 亚洲精品无码一区二区三区久久久 | 136av导航| 成人播放视频 | 99久久夜色精品国产亚洲1000部 | 中国美女毛茸茸撒尿 | 国产男女猛烈无遮挡在线喷水 | а 天堂 在线 | 少妇人妻真实偷人精品视频 | 日韩国产一区二区三区四区 | 日产精品久久久一区二区 | 久久精品国产大片免费观看 | 99ren| 精品国产凹凸成av人导航 | 男女性淫欲裸片免费看 | 日韩中文字幕无码一区二区三区 | 国产又黄又硬又湿又黄的网站免费 | 少妇搡bbbb搡bbb搡忠贞 | 国产二区免费 | 免费观看美女裸体网站 | 国产精品免费无码二区 | av天天有| 丁香六月婷婷 | 91久久久久久 | 国产深夜福利 | 日韩精品在线免费视频 | 国产黄在线视频 | 国产一卡三卡四卡无卡精品 | 小受叫床高潮娇喘嗯啊mp3 | 女人的精水喷出来视频 | 国产色在线 | 亚洲 日皮视频在线观看 | 91亚洲国产成人久久精品网站 | 正在播放强揉爆乳女教师 | 狠狠热在线视频免费 | 91久久久爱一区二区三区 | 国产午夜福利在线观看视频_ | 欧美伊香蕉久久综合网99 | 日本不卡高清一区二区三区 | 国产98色在线 | 国产 | 国产xxxx成人精品免费视频频 | 欧美成人剧场 | 日本无码v视频一区二区 | 欧美激情性xxxxx高清真 | 毛片网免费 | 黄色成人在线视频 | 国产一区二区三区导航 | 免费的很黄很污的视频 | 中日韩一线二线三线视频 | 国产精品欧美一区乱破 | 无码福利写真片在线播放 | 91在线无精精品一区二区 | 亚洲精品一卡2卡三卡4卡 | 天天透天天操 | 丰满少妇高潮惨叫久久久一 | 久青草影视 | 欧美日韩久久久久久 | 欧美成人免费全部观看国产 | jzzijzzij亚洲成熟少妇18 久久亚洲成人av | 精品国产一区二区三区吸毒 | 中文人妻无码一区二区三区 | 91九色蝌蚪视频 | 色婷婷av一区二区三区浪潮 | 欧美日韩一区二区三区在线观看视频 | 天天鲁一鲁摸一摸爽一爽 | 欧美牲交a欧美牲交aⅴ图片 | 久青青在线观看视频国产 | 黑人玩弄人妻中文在线 | 乡下人产国偷v产偷v自拍 | 欧美老熟妇videos极品另类 | 玩两个丰满老熟女 | 国产无遮挡裸体美女视频 | 亚洲午夜成人久久久久久 | 真实国产乱子伦对白在线播放 | 香蕉久久综合 | 色婷婷亚洲精品 | 亚洲色成人网站www永久 | 色www永久免费视频 好吊妞视频cao | 亚洲成av人片在线观看天堂无码 | h无码精品3d动漫在线观看 | 免费现黄频在线观看国产 | 91超碰成人 | 国产jizz18高清视频 | 亚洲成a人无码av波多野 | 亚洲天堂网av在线 | 精品国产乱码91久久久久久网站 | 九九九小视频 | 日韩网站视频 | 天天射天天日本一道 | 免费全部高h视频无码软件 国产又黄又粗又猛又爽的视频 | 日韩亚洲欧美综合 | 国产99久一区二区三区a片 | 舌头伸进去搅动好爽视频 | 欧美h在线观看 | 亚洲国产精品婷婷 | 久久99久久99久久 | 中中文字幕亚洲无线码 | 中文字幕免费在线播放 | 亚洲v无码一区二区三区四区观看 | 东京天堂热av | 欧美日一本 | 日韩爱爱网 | 黑人vs日本人ⅹxxxhd | 国内精品久久久久精免费 | 亚洲黄色激情 | 人妻丰满熟妇av无码区免 | 成人黄色大片在线观看 | 国产av永久无码青青草原 | 亚洲乱码国产一区三区 | 天天摸日日摸狠狠添 | 欧美欧洲成本大片免费 | 亚洲激情在线观看 | jzzjzzjzz亚洲成熟少妇 | 久久人人97超碰精品888 | 日韩av免费在线看 | 精品人妻少妇人成在线 | 又色又爽又黄的视频国内 | 性xxxx搡xxxxx搡按摩 | 国产精品高潮呻吟av久久无吗 | 永久免费看片在线 | 成 人 色综合 综合网站 | 在线免费日本 | 中文字幕 在线 欧美 日韩 制服 | 哪个网站可以看毛片 | 国产无遮挡又黄又大又爽 | 福利视频三区 | 91成熟丰满女人少妇 | 日韩欧美一区二区三区不学 | 免费精品国产人妻国语 | 高潮潮喷奶水飞溅视频无码 | 欧美精品videos另类日本 | 日本伊人色 | 久久香蕉国产线看观看导航 | 国产精品情侣呻吟对白视频 | 欧美久久大片 | 欧美日韩国产三区 | 国产色视频自在线观看 | 成人性生交大片免费看r男欢女爱 | 国产大片内射1区2区 | 亚洲成人三区 | 欧美色欧美亚洲高清在线观看 | 国产一区二区怡红院 | 久久国产精品老女人 | 激情图片区 | 欧美日韩不卡视频合集 | 国产精品一区二区人人爽 | 免费a v在线 | 欧美日韩中文国产一区 | 天堂资源最新在线 | 大伊香蕉精品一区视频在线 | 九九热九九 | 日韩一区二区三区在线观看视频 | 中国黄色1级片 | 狠狠色丁香久久婷婷综合丁香 | 欧美国产日韩a在线视频下载 | 交视频在线播放 | 午夜精品久久久久久久久久蜜桃 | 一级淫片在线观看 | a级性视频 | 视色视频在线观看 | 黄色网址在线播放 | 国产高清免费 | 啪啪免费小视频 | av无码电影在线看免费 | 91香蕉视频在线 | 亚洲精品永久在线 | 国产视频手机在线观看 | 噜噜色综合天天综合网mp3 | 国产黄视频在线观看 | 粗大的内捧猛烈进出小视频 | 久久综合九色综合97伊人 | 福利看片| 伊人影院综合 | 国产激情大臿免费视频 | 天堂资源wwwav啪啪 | 日本午夜精品 | 国产精品久久这里只有精品 | 精品成人免费一区二区不卡 | 日本熟妇厨房bbw | 色婷婷狠狠97成为人免费 | 让少妇高潮无乱码高清在线观看 | 日韩精品久久久 | 国产精品久久一区 | 亚洲综合在线成人 | 久久亚洲堂色噜噜av入口网站 | 欧美精品日韩 | 苍井空一区二区波多野结衣av | 成人h视频在线观看 | 野花社区免费观看在线www | 在线不卡国产 | 香港三级韩国三级日本三级 | 日韩视频 中文字幕 | 波多野结衣免费一区视频 | 国产桃色无码视频在线观看 | 一区二区三区无码视频免费福利 | 伊人久久大香线蕉av不变影院 | 国产在不卡免费一区二区三 | 伊人久久亚洲精品一区 | 亚洲爆乳无码专区 | 日韩精品亚洲一区在线综合 | 日韩一区免费 | 亚洲精品123区| 无套内谢少妇毛片免费看 | 一区二区在线欧美日韩中文 | 日日干日日操 | 熟女人妻av五十路六十路 | 久久精品无码免费不卡 | 1区2区3区在线观看 天天夜天天干 | 手机在线观看av片 | 日韩三区视频 | 性动态图av无码专区 | 狼人社区91国产精品 | 超碰97色 | 精品性影院一区二区三区内射 | 51久久成人国产精品麻豆 | 久久免费视频一区二区 | 亚洲中文字幕久久精品无码app | 在线国产不卡 | 精品国产经典三级在线看 | 亚洲无吗一区二区三区 | 精品伊人久久久久7777人 | 四虎5151久久欧美毛片 | 日日碰日日摸日日澡视频播放 | 秋霞午夜鲁丝一区二区老狼 | 欧美久久天堂 | 青青青欧美视频在线观看 | 极品美女扒开粉嫩小泬 | 人妻熟女av一区二区三区 | 国产av国片偷人妻麻豆 | 精品欧洲av无码一区二区 | 久久www免费人成看片入口 | 青青手机在线视频 | 欧美极品jizzhd欧美爆 | 真多人做人爱视频高清免费 | 狠狠综合久久久久综合网站 | 日本三级网站在线 | 免费看黄在线网站 | 九九在线免费视频 | 夜久久久 | 黄瓜视频在线播放 | 和岳每晚弄的高潮嗷嗷叫视频 | 黄色高潮视频 | 巨胸美乳无码人妻视频 | 国产av天堂亚洲国产av下载 | 中文字幕在线观看网 | 日韩精品在线一区二区三区 | 欧美成aⅴ人在线视频 | 级r片内射在线视频播放 | 成在人线av无码免费高潮喷水 | 久久网页 | 精品无码久久久久国产动漫3d | 沙奈朵狂揉下部羞羞动漫 | 无码人妻一区二区三区麻豆 | 久久久久国产精品夜夜夜夜夜 | 日日摸日日添夜夜爽97 | 少妇japanhd| 国产精品一区二区国产主播 | 91久久久久久久久久久久久久 | 久久伊人热热精品中文字幕 | 人妻系列无码专区免费视频 | 夜夜躁狠狠躁日日躁婷婷小说 | 太平公主秘史在线观看 | 成年在线网站免费观看无广告 | 久久99亚洲精品 | 中文字幕在线2021 | 少妇的肉体在线观看 | 国产一区二区三精品久久久无广告 | 国产欧美日韩免费观看 | 亚洲欧美成人一区 | 亚洲美女色视频 | 女人被狂躁c到高潮喷水一区二区 | 在线观看成人无码中文av天堂不卡 | 国产精品女视频一区二区 | 亚洲在av人极品无码 | 69热在线观看 | 亚洲综合色视频 | 在线观看欧美黄色 | 色噜噜噜亚洲男人的天堂 | 人妻巨大乳hd免费看 | 亚洲精品国产高清在线观看 | 最新福利视频 | 日本一卡精品视频免费 | 国产精品夜夜春夜夜爽久久老牛 | 99精品欧美一区二区蜜桃免费 | 欧美成人午夜免费影院手机在线看 | 欧美日韩亚洲色图 | 日韩人妻无码一区二区三区综合部 | 午夜小视频免费在线观看 | 国产中文字幕在线视频 | 中文字幕二 | 综合网中文字幕 | 秋霞网一区 | 97碰碰视频 | www久久com| 国产欧美日韩小视频 | 日韩成人无码v清免费 | 乱爱性全过程免费视频 | 成年网站在线在免费线播放欧美 | 日本免费一区二区三区视频观看 | 日韩国产图片区视频一区 | 亚洲国产欧美一区二区好看电影 | av不卡中文字幕 | 好黄好硬好爽免费视频一 | 国产精品欧美久久久久无广告 | 国产免费一区二区三区在线播放 | 国产手机在线亚洲精品观看 | 91在线视频免费观看 | 免费观看无遮挡www的视频 | 伊人婷婷色香五月综合缴缴情 | 国产精品无码久久av嫩草 | 国产精品久久久久久久久久久久午夜片 | 久久免费视频99 | 大岛优香中文av在线字幕 | 国产午夜激无码av毛片 | 日本高清视频色欧www | 免费久久99精品国产自在现 | 亚洲精品一品区二品区三品区 | 大学生久久香蕉国产线看观看 | 96亚洲精品 | 国产 中文 字幕 日韩 在线 | 日韩乱码人妻无码中文视频 | 天堂网视频在线观看 | 五月婷久久综合狠狠爱97 | 337p日本大胆欧美人术艺术69 | 国内精品少妇在线播放98 | 欧美手机在线 | 亚洲性夜色噜噜噜在线观看不卡 | 欧美人与动牲交zooz乌克兰 | 国产女主播白浆在线看 | 日韩aaa久久蜜桃av | 国产一区二区伦理 | 韩国黄色在线 | 精品欧美在线观看 | 亚洲天堂高清 | 91精品国产色综合久久不卡98 | 久久久最新 | 亚洲国产精品一区二区美利坚 | 无码专区天天躁天天躁在线 | 亚洲不卡av不卡一区二区 | 国产午夜成人无码免费看不卡 | 亚洲国产精品久久久久婷婷老年 | 成人免费无码不卡毛片 | 久久亚洲色www成人男男 | 成人欧美日韩一区二区三区 | 伊人66| 国产成人无码精品一区不卡 | 麻豆毛片在线看 | av日韩在线免费观看 | 久久国产精品_国产精品 | 亚洲欧美激情在线一区 | 国产免费午夜福利757 | 亚洲精品www久久久 久久成人国产精品 | 亚洲欧美日韩综合在线一 | 无码h黄肉动漫在线观看 | 欧美激情综合色综合啪啪五月 | 美女脱免费看网站女同 | 一色桃子中文字幕av | 毛片黄色视频 | 中文字幕无线码成人免费看 | 无遮挡国产 | 色噜噜狠狠一区二区三区 | 在线天堂资源www中文 | 亚洲视频99 | 九九久久精品国产 | 国产福利一区视频 | 国产精品18p | 中文字幕在线观看地址 | 久久人人97超碰国产精品 | 乱人伦人妻中文字幕不卡 | 欧美成人自拍 | 亚洲成a人片在线观看无码专区 | 免费观看日韩毛片 | 国产三级做爰在线观看 | 日韩精品久久 | 777色狠狠一区二区三区 | 日韩一级特黄毛片 | 尤物yw午夜国产精品大臿蕉 | 小早川怜子xxxxaⅴ在线 | 人妻aⅴ中文字幕无码 | 欧美日韩不卡在线 | 日本裸交xx╳╳137大胆 | 午夜小视频免费 | 国产色综合天天综合网 | 韩国午夜理伦三级在线观看 | 亚洲国产视频一区二区三区 | 2022色婷婷综合久久久 | 国产福利91精品一区二区三区 | 伊人久久麻豆 | 色www亚洲国产张柏芝 | 午夜婷婷 | 在线观看免费视频污网站 | 欧美成人a激情 | 最爽的乱婬视频a毛片 | 91官网在线 | 国产综合视频在线观看 | a级黄色毛片三个搞一 | wwwxx欧美| 国产又色又爽又黄的网站在线 | 亚洲性喷水 | 日本网站在线看 | 99视频精品全部免费免费观看 | 日韩av在线一区二区三区 | 人妻饥渴偷公乱中文字幕 | 日韩乱码人妻无码中文视频 | 天天干天天色天天射 | 成人毛片一区二区三区 | 最新无码人妻在线不卡 | 激情视频久久 | 国产精品99精品无码视亚 | 丰满少妇人妻hd高清果冻传媒 | 亚洲精品卡一卡2卡3卡4卡 | 精品国产乱码久久久久久虫虫 | 亚洲成熟丰满熟妇高潮xxxxx | 一区免费观看 | 免费无码午夜福利片69 | 欧美成人影院亚洲综合图 | 97久久超碰福利国产精品… | www.青草视频| 欧美精品不卡 | 欧美两根一起进3p在线观看 | 亚洲高清视频在线播放 | 色8激情欧美成人久久综合电 | 992tv在线观看 | 亚洲 欧美日韩 综合 国产 | 亚洲国产精品久久久久婷蜜芽 | 亚洲欧洲综合在线 | 久久亚洲堂色噜噜av入口网站 | 日本免码va在线看免费 | 91射| 久久99精品国产99久久6不卡 | 欧洲精品一区二区三区久久 | 免费在线一级片 | 天天躁日日躁狠狠躁2018 | 超薄丝袜足j好爽在线观看 一区二区三区有限公司 | 毛片av在线| 成人综合影院 | 少妇被黑人到高潮喷出白浆 | 国产亚洲精aa在线看 | 国产午夜免费高清久久影院 | 自拍 亚洲 欧美 卡通 另类 | 亚洲国产精品综合久久网各 | 卡1卡2卡三卡精品视频 | 亚洲不卡1卡2卡三卡入口 | 国产蜜臀视频 | 国产亚洲精品久久久久秋 | 大屁股国产白浆一二区 | 男女无遮挡激情视频 | 五月婷婷六月婷婷 | 亚洲精品国产精华液 | 国产日韩在线免费 | 我要操网站 | 国产精品久久精品三级 | 99福利影院 | 亚洲五月综合缴情在线 | 沙奈朵狂揉下部羞羞动漫 | 久久久精品456亚洲影院 | 色啊色 | 国产亚洲欧美日韩在线三区 | 日韩精品91亚洲二区在线观看 | 插菊花综合 | 国产依人 | 亚洲欧洲国产码专区在线观看 | 久久九九爱 | 高h av| 精品久久久久久久 | 8x拔播拔播x8国产精品 | 欧美色欧美亚洲高清在线视频 | 国产在线精品国偷产拍 | 国产美女爽到喷出水来视频 | 天天爽夜夜爽国产精品视频 | 欧美成人天天综合在线 | 特黄三级视频 | 一区二区三区网站 | 午夜精品一区二区三区的区别 | 国产午夜高潮熟女精品av软件 | 中文无码热在线视频 | 黄www在线观看 | 男人免费网站 | www.天天色| 天天干天天干天天干天天 | 亚洲一卡2卡3卡4卡 精品 | 伊人夜夜躁av伊人久久 | 久草日韩 | 久久国产插 | 欧美肥婆姓交大片 | 四虎影视永久地址www成人 | 美日欧激情av大片免费观看 | 色伊人网 | 精品熟女少妇av免费久久 | 永久免费精品网站 | 久久人妇 | 日韩97| 少妇精品偷拍高潮白浆 | 欧美日韩精品亚洲精品 | 波多野结衣中文字幕一区二区三区 | 久久青青草原国产毛片 | 国产乱国产乱300精品 | 日本丰满老妇bbb | 日本黄色美女视频 | 国产精品特级毛片一区二区三区 | 二色av| 亚洲精品天堂无码中文字幕 | 久久免费福利视频 | 伊人99| 亚洲中文字幕在线第二页 | 91亚洲一区| 在线播放色 | 忘忧草社区在线播放日本韩国 | 国产精品第6页 | 亚洲免费精品aⅴ国产 | 精品久久久久久久久午夜福利 | 日韩人妻潮喷中文在线视频 | 视频免费一区 | 少妇spa推油被扣高潮 | 天天舔天天爱 | 成年人久久 | 天天躁日日躁狠狠躁性色avq | 日韩一区二区三区无码免费视频 | 乱人伦无码中文视频在线 | 久久精品久久久久久 | 亚洲图片888 | 啪视频在线观看 | 人妻熟妇乱又伦精品无码专区 | 欧美成人免费高清视频 | 99热手机在线观看 | 日本黄色激情视频 | 国产亚洲第一页 | 在线观看中文字幕dvd播放 | 极品粉嫩鲍鱼视频在线观看 | 99久久婷婷国产综合精品青牛牛 | 失禁潮痉挛潮喷av在线无码 | 亚洲日韩精品射精日 | 国产精品久久久久久麻豆一区 | 18禁无遮拦无码国产在线播放 | 无码精品人妻一区二区三区湄公河 | 国产精品久久久久久久久久精爆 | 天堂√在线 | 天天干夜夜欢 | 五月婷婷之综合激情 | 乱人伦人妻中文字幕不卡 | 好色先生视频污 | 最新毛片网站 | 狠狠插综合 | 欧美涩涩涩 | 国精品人妻无码一区二区三区喝尿 | 国产成人亚洲综合无码8 | 六月丁香色婷婷 | 91日日拍夜夜嗷嗷叫国产 | 日本丶国产丶欧美色综合 | 久久99热狠狠色精品一区 | 欧美孕妇xxxxx | 亚洲人做受 | 午夜理论片在线观看免费 | 亚洲精品啊啊啊 | 国产美女自卫慰视频福利 | 免费午夜理论不卡 | 日本乱妇乱子视频 | 欧美黑人又粗又大高潮喷水 | 日韩人妻无码精品系列专区 | jizz在线免费观看 | 色偷偷色噜噜狠狠网站30根 | 99久久伊人 | 乱码一卡二卡新区永久入口 | 农村女人乱淫免费视频麻豆 | 日本一区二区三区久久久 | 色姑娘粽合 | 中文字幕av久久激情亚洲精品 | av天堂中av世界中文在线播放 | 亚洲免费大全 | 香蕉视频在线观看www | 人妻少妇69式99偷拍 | 亚洲精品久久久久久 | 激情www| 国产日产欧产美韩系列影片 | 99在线精品国自产拍 | 密臀在线观看 | 日韩一区二区视频在线 | 国精产品视频一二二区 | 国产精品对白刺激蜜臀av | 91综合激情 | 久久精品免费一区二区三区 | 国产无套中出学生姝 | 永久免费无码网站在线观看 | 亚洲中文字幕高清有码在线 | 一边吃胸一边揉下面的视频 | 日韩免 | 久久99久久99精品免观看粉嫩 | 农村老熟妇乱子伦视频 | 欧美久久精品一级黑人c片 99热国内精品 | 99国产精 | 麻豆av一区二区三区久久 | 久久艹艹| 奇米在线视频观看 | 国内精品视频一区 | av影视天堂 | 国产成人精品视频 | 少妇高潮伦 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 91九色porny蝌蚪 | 午夜成人影院网站18进 | 亚洲操操操 | 欧美精品网 | 日本少妇一区二区三区 | 巨大乳做爰视频在线看 | 日韩特黄色片子看看 | 久草福利在线播放 | 97夜夜澡人人爽人人喊a | 日产精品久久久一区二区 | 国产精品爽到爆呻吟高潮不挺 | 情侣偷偷看的羞羞视频网站 | 亚洲国产影院 | 日本高清在线播放 | 少妇呻吟翘臀后进爆白浆在线观看 | 91pony九色丨交换 | 人妻熟女一二三区夜夜爱 | 久久99热只有频精品6国语 | 狠狠色综合网丁香五月 | 中文字幕_第2页_高清免费在线 | 欧美在线人视频在线观看 | 国产免费一区二区三区在线能观看 | 中字幕人妻一区二区三区 | 亚洲高清中文字幕在线看不卡 | 免费在线观看亚洲视频 | 国产又大又黄又猛 | 久久久精品国产99久久精品麻追 | 国产亚洲一区二区三区 | 亚洲日本在线在线看片4k超清 | 成人国产1314www色视频 | 亚洲 欧美 激情 另类 | 无码人妻一区二区三区免费n鬼逝 | 91国在线视频 | 久久大蕉香蕉免费 | 久久久久久久久久久久久女过产乱 | 懂色一区二区二区av免费观看 | 亚洲中文在线播放一区 | 国产精品sm捆绑调教视频 | 亚洲人成网www男同 亚洲最新无码中文字幕久久 | 久草大| 丁香花在线影院观看在线播放 | 久爱无码精品免费视频在线观看 | 亚洲 中文 女同 | 久久99草| 中文字幕23页 | 97婷婷狠狠成为人免费视频 | 国产三级精品三级在线专区1 | 老司机午夜精品99久久免费 | 亚洲熟妇av一区二区三区宅男 | 国产精品久久久999 色五月丁香五月综合五月 人妻互换免费中文字幕 | 吃奶呻吟打开双腿做受视频 | 男人的天堂av亚洲一区2区 | 视频一区在线观看 | 成人日韩视频 | 亚洲美女爱爱视频 | 国产亚洲精品久久久久久老妇 | 97精品国产aⅴ | 天天综合网入口 | 国产乱码一二三区精品 | 无码一区二区三区亚洲人妻 | 中文日本字幕mv在现线观看 | 欧美乱做爰xxxⅹ久久久 | 91视频免费在观看 | 伊人色综合影院 | 国色天香成人网 | 久久久受www免费人成 | 少妇乱子伦在线播放 | 免费精品国自产拍在线播放 | 狂野av人人澡人人添 | 好大好深好猛好爽视频拍拍拍 | 国产精品日本一区二区不卡视频 | 国产美女爽到喷白浆的 | 国产裸体永久免费视频网站 | 掀开奶罩边吃边摸下娇喘视频 | 国产高清视频色拍 | 一区二区免费视频中文乱码 | 日韩中文字幕av在线 | 欧美午夜精品久久久久久孕妇 | 日韩h网站 | 99无码熟妇丰满人妻啪啪 | 78亚洲精品久久久蜜桃网 | 国产精品美女久久久网av | 五月激情开心网 | 亚洲aⅴ在线观看 | 国产精品久久久久久久久久不蜜月 | 催眠淫辱の教室3在线观看 亚洲中字慕日产2020 | 国产片网址 | 成人内射国产免费观看 | 色欲香天天天综合网站 | 欧美视频一区二区三区 | 欧美性bbw | 男人视频网站 | 精品亚洲一区二区三区在线播放 | 希岛爱理88av812在线观看 | 亚洲一区二区在线视频 | 国产成人主播 | 久久毛片网站 | 欧美成人精品一区二区综合a片 | 羞羞视频免费在线看 | 久久国产激情 | 欧美一区二区三区小说 | 亚洲黄色片视频 | 免费999精品国产自在现线 | 亚洲韩国日本 | 一二区在线观看 | 国产无遮挡aaa片爽爽 | 99国产精品久久久久久久久久久 | 国内视频一区二区三区 | www.欧美亚洲| 女人18毛片a级毛片一区二区 | 女人被狂躁到高潮视频免费软件 | 强侵犯の奶水授乳羞羞漫虐 | 国产精品人人妻人人爽 | 日本人做受免费视频 | 欧美日本视频在线观看 | 国产夜夜夜 | 99久久精品无码一区二区毛片 | 东京热无码中文字幕av专区 | 欧洲精品码一区二区三区免费看 | 国产69成人精品视频免费 | 日本视频高清一区二区三区 | 黄色一级免费观看 | 中国一级大黄大黄大色毛片 | 日韩乱码人妻无码中文字幕 | 91官网入口 | 国产凹凸久久精品一区 | 国产精品一二三在线 | 亚洲一片| 国产福利萌白酱在线观看视频 | 无码人妻一区二区三区免费n鬼沢 | 精品欧美色视频网站在线观看 | 在线三级网址 | 人妻少妇精品中文字幕av蜜桃 | 久久一二三区 | 亚洲激情视频在线观看 | 韩国乱码伦视频免费 | 欧美国产综合色视频 | 久久99精品国产99久久 | 中文在线√天堂 | 91久久精品国产91性色tv | 成人网站精品久久久久 | 免费无码无遮挡裸体视频在线观看 | 久久久一级| 久久久久 亚洲 无码 av 专区 | 亚洲精选久久久 | 国产免费1卡2卡 | 国产又黄又湿无遮挡免费视频 | 日韩国产丝袜人妻一二区 | av片免费| 国产情侣自拍小视频 | 上司的丰满人妻中文字幕 | 亲子乱子伦xxxx视频 | 婷婷激情在线视频 | 久久小草亚洲综合 | 精品av天堂毛片久久久 | 九九99视频 | 亚洲成人看片 | 国产麻豆精品sm调教视频网站 | 天堂av色综合久久天堂我不卡 | 成人女人黄网站免费视频 | 91精品亚洲影视在线观看 | 天天操天天射天天爽 | 国产无遮挡a片又黄又爽网站 | 狼群精品一卡二卡3卡四卡网站 | 最新国产精品久久精品 | 久久午夜夜伦鲁鲁片无码免费 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 国产精品毛片一区二区在线看 | 国产三级a毛视频在线观看 免费黄色av网站 | 日本在线观看 | 亚洲国产精品无卡做爰天天 | 国产一区二区三区精品视频 | 男女后式激烈动态图片 | 男人天堂午夜 | 97zyz成人免费视频 | 国产极品粉嫩馒头一线天av | 国内精品自产拍在线观看 | 国产成人夜色在线影院 | 无码人妻精品中文字幕 | 最新中文av | 日韩av成人在线 | 中国黄色一级片 | 国产在线精品一区二区在线观看 | 成人永久免费网站在线观看 | 国产又粗又猛又爽又黄的视频p站 | 亚洲成国产人片在线观看 | 在线观看片免费人成视频无码 | 2020无码专区人妻系列日韩 | 国产动漫av | 国产精品一区二区av片 | 人妻系列无码一区二区三区 | 国产日韩中文字幕 | 特级小箩利无码毛片 | 久夜精品| 一色综合 | 一区二区人妻无码欧美 | 少妇免费毛片久久久久久久久 | 在线视频 一区二区 | 又黄又爽又色又刺激的视频 | 色婷婷五月在线精品视频 | 秋霞国产精品一区二区 | 国产 欧美 视频一区二区三区 | 97国产精品视频 | 激情欧美网站 | 色诱亚洲精品久久久久久 | 中文字幕制服丝袜人妻动态图 | 天天色天天色天天色 | 日韩 中文字幕 91 | 黄色亚洲视频 | 思思久婷婷五月综合色啪 | 国产精品videossex国产高清 | 夜夜嗨aⅴ免费视频 | 四虎海外永久 | 99在线免费观看 | 国产欧美日韩a片免费软件 最近中文字幕日本 | 天天综合色天天综合色h | 狠狠色噜噜狠狠狠888奇米 | 午夜在线视频观看日韩17c | 日韩高清在线播放 | av在线资源网站 | caob视频| 国产黄色片在线免费观看 | 99久久精品国产毛片 | 少妇mm被擦出白浆液视频 | tube少妇高潮 | 女人被狂c到高潮视频网站 成人免费淫片aa视频免费 | 日本精品婷婷久久爽一下 | 成在人线av无码免费 | 久久精品视频中文字幕 | 久久中文字幕人妻av熟女 | 亚洲专区视频 | 欧美一区二区三区久久综 | 少妇性bbb搡bbb爽爽爽欧美 | 亚洲成av人片天堂网站 | 日本中文在线播放 | 久久久精品日本一区二区三区 | 亚洲成a人片在线观看国产 国内成人精品2018免费看 | 亚洲成人av | 涩涩资源站 | 久久视精品 | 国内精品自国内精品66j影院 | 日韩免费影视 | 免费日韩一区二区 | 欧美国产三级 | 极品人妻少妇一区二区三区 | 四虎在线视频免费观看 | 亚洲国产成人无码av在线 | 国产欧美另类久久精品蜜芽 | 男人天堂2017| 精品久久人妻av中文字幕 | a视频在线观看免费 | 亚洲无吗在线视频 | 99欧美视频 | 影音先锋人妻每日资源站 | 91网站在线观看视频 | 亚洲片在线 | 粉嫩av国产一区二区三区 | 动漫精品无码视频一区二区三区 | 久久亚洲道色综合久久 | 日本欧美在线观看视频 | 中文字幕日韩精品成人免费区二区 | 欧美人与动牲交免费观看网 | 视频分类 国内精品 | 日日碰日日摸日日澡视频播放 | 忘忧草www中文在线资源 | 99在线成人精品视频 | 毛片入口 | zzijzzij日本丰满少妇 | 亚洲系列第一页 | 18禁黄污吃奶免费看网站 | 欧洲性生活片 | 午夜dj在线观看高清在线视频完整版 | 全部免费a级毛片 | a欧美爰片久久毛片a片 | 无码国产精品一区二区色情男同 | 无码人妻丰满熟妇奶水区码 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 少妇三级全黄在线播放 | 精品无码人妻一区二区三区品 | 久久久久久久香蕉 | 国产最爽乱淫视频国语对白 | 国产一级在线播放 | 一本一道久久综合久久 | 免费做爰猛烈吃奶摸视频 | 中文字幕在线播放一区二区 | 少妇欧美激情一区二区三区 | 女人18毛片水真多 | 欧亚毛片 | 日本a天堂| 日韩性猛片aaaaaaa做受 | 久久精品道一区二区三区 | 国产成人精品视觉盛宴 | 日日噜噜噜夜夜爽爽狠狠视频97 | 亚洲最大av资源网在线观看 | 免费一级做a爰片性视频 | 不卡视频一区 | 伦理精品一区二区三精品 | 久青草免费视频 | 国产成人无码网站 | wwwxxx69japan国产 亚洲无砖砖区一二区免费 中国女人内谢69xxxx视频 | 精品成人免费一区二区不卡 | av不卡中文字幕 | 美女人人操 | 色乱码一区二区三区麻豆 | 肥臀熟女一区二区三区 | 六月丁香婷婷激情 | 欧美影院a∨天堂 | 亚洲精品无码不卡久久久久 | 漂亮的女老板国产三级 | 日韩成人av片 | 一本色道久久88亚洲精品综合 | 亚洲黄色视屏 | 国产999精品成人网站 | 91精品一区| 国内精品久久久久久久软件 | 狠狠v欧美v日韩v亚洲ⅴ | 天天干视频网站 | 亚洲性夜夜综合久久7777 | 欧美日韩人成视频在线播放 | 日韩αv在线 | 日韩欧美一区2区3区 | 中日韩精品视频在线观看 | 2021中文字幕在线观看 | 粉嫩av久久一区二区三区小说 | 天堂av免费在线 | 一区二区三区日韩在线 | 伊人久久久大香线蕉综合直播 | 欧美成人三级在线视频 | 国产激情自拍 | 无码av人片在线观看天堂 | aⅴ精品av导航| 拍真实国产伦偷精品 | 国产av亚洲精品久久久久久小说 | 日本午夜免a费看大片中文4 | 羞羞视频免费在线看 | 久久人妻无码一区二区 | 欧美成人aaa片一区国产精品 | 国产在线观看第一页 | 国产1区2区3区中文字幕 | 久久亚洲精中文字幕冲田杏梨 | 国产精品一区二区在线播放 | 亚洲愉拍二区一区三区 | 欧美xxxx做受老人国产的 | 91免费版在线观看免费 | 乱女伦露脸对白在线播放 | 久久久久香蕉国产线看观看伊 | 91污片 | 日韩啪 | 国产精品女同 | 亚洲欧美国产高清va在线播放 | 色综合五月 | 欧美人与物ⅴideos另类 | 99久久久无码国产精品aaa | 精品二三区 | 日韩一级一区 | 亚州欧美一区二区 | 精品一卡二卡三卡四卡兔 | 激情五月中文字幕 | 亚洲熟妇色xxxxx欧美老妇 | 欧美极品video粗暴 | 少妇扒开腿让我爽了一夜 | 曰韩精品一区二区 | 久久精品国产99久久六动漫 | 日日爱669 | 久久久久久曰本av免费免费 | 国产高潮流白浆免费观看 | 免费观看又色又爽又湿的视频 | 色天堂影院 | 日色视频 | 欧美日韩亚洲系列 | 久久综合狠狠综合久久综 | 久久经精品久久精品免费观看 | 国产成a人亚洲精v品久久网 | 毛片国产 | 99九九99九九九99九他书对 | 欧美激情自拍 | 精品一个色| 性开放永久免费视频 | 欧美精品色视频 | 中文字幕亚洲精品乱码 | 日韩永久视频 | 欧美老人巨大xxxx做受视频 | 青青草99热| 国产 精品 丝袜 | 日韩精品一区二区三区丰满 | 男女男精品视频站 | 99偷拍视频精品一区二区 | 国产婷婷综合在线视频中文 | 亚洲成人777| 999香蕉视频 | 国产无遮挡a片又黄又爽网站 | 亚洲成人第一网站 | 狠狠色狠狠色88综合日日91 | 亚洲 欧美 清纯 校园 另类 | 视频日韩 | 国产97在线视频 | 国产精品扒开腿做爽爽爽视频 | 警花系列乱肉辣文小说 | 葵司在线视频 | 黄色片在线视频 | 亚洲精品一区二区三区四区乱码 | 小12萝裸体视频国产 | 丨国产丨调教丨91丨 | 少妇爆乳无码av无码波霸 | 十八禁无码免费网站 | 国产二级一片内射视频插放 | 无码人妻出轨黑人中文字幕 | 黄色毛片 黄色毛片 | 国产爆乳无码视频在线观看3 | 国产嫩草av | 欧美一区免费观看 | 久久91久久久久麻豆精品 | 成年免费视频播放网站推荐 | 悠悠色综合 | 99热国产在线手机精品 | 亚洲一区精品无码色成人 | 亚洲无线一二三四区手机 | 操人视频网站 | 狠狠色丁香久久久婷 | 色综合久久久久久久 | 成人午夜特黄aaaaa片男男 | 中国黄色一级毛片 | 日本欧美www视频网站 | 亚洲免费天堂 | 无码熟妇人妻av在线影片 | 激情校园另类小说伦 | 宅男噜噜噜66国产在线观看 | av片天堂 | 欧美激情喷水 | 免费看久久妇女高潮a | 999免费视频 | 亚洲精品久久久久中文字幕m男 | 爱啪啪网站 | 国产精品一区二区在线免费观看 | 被窝的午夜无码福利专区 | 国产亚洲曝欧美精品手机在线 | 国产精品久久国产三级国 | 午夜亚洲影院在线观看 | 国产一级免费大片 | 三级黄色在线视频 | 日本激情网 | 国模私拍一区二区三区 | 久9re热视频这里只有精品 | 青青久久av | 97成人在线观看视频 | 久久夜色撩人精品国产小说 | 日韩久久成人 | 天天干人人 | 国产成人免费片在线观看 | 欧美性狂猛xxxⅹxx吞精 | 国产农村黄aaaaa特黄av毛片 | 日韩和欧美一区二区三区 | 一本一本久久a久久精品综合不卡 | 国产仑乱 | 欧美熟妇的荡欲在线观看 | 国内真实迷j下药在线观看 视频在线+欧美十亚洲曰本 | 2024av在线播放| 波多野结衣久久精品 | 妺妺窝人体色www在线下载 | 欧美福利一区二区 | 在线看三级 | 在线播放无码字幕亚洲 | 99无码人妻一区二区三区免费 | 国产精品日日摸天天碰 | 国产日韩a | 成人午夜激情网 | 你懂的在线视频网站 | 天干天干夜啦天干天干国产 | 国产偷自一区二区三区 | 婷婷亚洲图片 | 亚洲丰满熟妇在线播放电影全集 | 一日本道伊人久久综合影 | 日本韩国欧美一区二区三区 | 欧美日韩久 | 99re色 | www.淫.com | 91久久国产涩涩涩涩涩涩 | 午夜夫妻试看120国产 | 亚洲欧美日韩精品suv | 午夜精品久久99蜜桃的功能介绍 | 超薄肉色丝袜一区二区 | 99久久无码一区人妻a片潘金莲 | 动漫精品中文无码卡通动漫 | 91九色论坛| 亚洲成人婷婷 | 亚洲卡1卡2卡三卡4卡5卡6卡 | 欧美老女人性生活视频 | 欧美黑人性生活 | 中文字幕久久波多野结衣av | 久久午夜无码鲁丝片秋霞 | 欧美一区二区在线免费观看 | 九色porny丨自拍视频 | 日韩黄色免费视频 | a国产在线v的不卡视频 | 中文字幕亚洲综合小综合在线 | 97精品欧美一区二区三区 | yy111111少妇嫩草影院 | 色婷婷综合久久久中文一区二区 | 超碰人人超碰人人 | 三级全黄做爰在线观看 | 欧美性生 活18~19 | 成人性生生活性生交5 | 亚洲r成人av久久人人爽澳门赌 | 亚洲愉拍自拍欧美精品app | 精品久久久无码中文字幕边打电话 | 精品国产sm最大网站 | 国产精品一区二区手机在线观看 | 国产精品国产三级国快看 | 夜夜高潮夜夜爽精品视频 | 欧美精品欧美人与动人物牲交 | 国产视频观看 | 国产v亚洲∨无码天堂 | 日本aaaa级毛片在线看 | 亚洲欭美日韩颜射在线 | 在线成人精品国产区免费 | 男女超级黄aaa大片免费 | 国产一级特黄aa大片出来精子 | 欧美另类图区清纯亚洲 | 国产果冻豆传媒麻婆 | 一黄色大片| 五月丁香激激情亚洲综合 | 麻豆精品久久 | 四虎精品成人免费网站 | 亚洲又粗又长 | 丰满人妻的精油按摩做爰 | 久久二区视频 | 一边摸一边叫床一边爽av | 三级毛片在线看 | 亚洲精品一区二区三区早餐 | 北条麻妃69av | 爽爽av | 久久99精品久久久久久蜜芽 | 欧美抠逼视频 | 午夜在线影院 | 久久无码潮喷a片无码高潮 中文字幕无码一区二区免费 | 91在线精品秘密一区二区 | 综合一区二区三区 | 我要看三级毛片 | 一区二区久久久 | 野花香社区在线观看 | 1024一区二区 | 少妇mm被擦出白浆液视频 | 日韩高清在线播放 | 精品国产依人香蕉在线精品 | 色翁荡息又大又硬又粗又视频图片 | 国模蔻蔻私拍极品150p | 免费看a毛片 | 女人被狂躁c到高潮视频 | 一级少妇性色生活片免费 | 国产又黄又大又爽又粗在线网站 | 三级免费网址 | 国产福利视频在线精品 | 就爱操av | 国产欧美一区二区白浆黑人 | 国产玖玖玖玖精品电影 | 亚洲69视频 | 黑人操日本人 | 狠狠躁夜夜躁人人爽天天不卡软件 | 99久热国产精品视频尤物 | 久久9999久久免费精品国产 | 加勒比黑人和翔田千里在线 | 国产激情网址 | 97欧美精品系列一区二区 | 亚洲一二三四2021不卡 | 久久视频6| 大片在线免费观看 | 4hu亚洲人成人无码网www电影首页 | 四虎黄网 | 九九热精 | 噼里啪啦在线看免费观看视频 | 国产影音先锋 | 偷偷色噜狠狠狠狠的777米奇 | 日日干狠狠干 | 亚欧乱色熟女一区二区 | 自拍偷拍另类 | 曰本女人牲交全视频免费播放 | 涩涩在线 | 国产最新av | 日本欧美高清视频 | 日本强伦片中文字幕免费看 | 亚洲欧美亚洲 | www.com捏胸挤出奶 | 国产亚洲欧美日韩一区图片 | 一区日韩 | 毛片网在线观看 | 国产精品福利网红主播 | 草草影院ccyy| 男女啪啪猛烈无遮挡猛进猛出 | 黄色网址你懂的 | 国产视频在线一区二区 | 91麻豆精品国产91久久久点播时间 | 国产成人香蕉久久久久 | 国产爽视频在线观看视频 | 精品21国产成人综合网在线 | 亚洲精品中文字幕在线播放 | 久久久久久久久18久久久 | 日本性视频网站 | v11av在线播放 | 欧美人成网站在线看 | av毛片久久久久午夜福利hd | 久久久精品日本 | 中文字幕乱码一区二区免费 | 欧美19p | 手机av不卡| 张津瑜警花国产精品一区 | 一本色道av久久精品+ | 天天看天天操 | 无码欧亚熟妇人妻av在线外遇 | 久久精品视频免费观看 | 亚洲精品久久久久久成人 | www.精品视频 | 欧美精品在线观看一区二区 | 亚洲成av人片在线观看无码不卡 | 色香蕉色香蕉在线视频 | 亚洲欧美国产高清va在线播放 | 精品国偷自产在线视频九色 | 免费午夜无码18禁无码影院 | 久久青草免费视频 | 精品国产乱码久久久久久竹菊影视 | 青草青在线 | 久热久热| 亚洲激情在线播放 | 亚洲久热无码中文字幕人妖 | 午夜综合| 国产精品无码一本二本三本色 | 亚洲国产精品尤物yw在线观看 | 亚洲精品乱码久久久久久金桔影视 | 九九在线视频 | 涩涩在线视频 | 青草综合一区二区三区 | 久久中文字幕免费 | 国产一级二级在线观看 | 蜜桃无码av一区二区 | 日本性欧美 | 麻豆国产尤物av尤物在线看 | 亚洲妇熟xx妇色黄蜜桃 | 欧美日韩国产码高清 | 超碰在线观看97 | 少妇性bbb搡bbb爽爽爽欧美 | 免费av网页 | 六月丁香激情 | 国产丰满老熟妇乱xxx1区 | 欧美精品一区在线 | 久久精品囯产精品亚洲 | 99热这里只有精品8 日韩精品视频在线观看网站 | 99久久婷婷国产综合精品 | 亚洲国产精品尤物yw在线观看 | 久久久综合九色合综国产精品 | 成人午夜特黄aaaaa片男男 | 91久久爽久久爽爽久久片 | 999亚洲国产精| 91看黄网站 | 亚洲自偷精品视频自拍 | 日日摸日日添日日碰9学生露脸 | 一区二区高清视频 | 日本老妇人乱xxy | 日韩av一区二区三区四区 | 精品一区二区三区四区五区六区 | 精品视频网站 | 色一情一区二区三区四区 | 日本三线免费视频观看 | 色一情一乱一伦一区二区三区四区 | 亚洲国产日韩欧美在线观看 | 五月99久久婷婷国产综合亚洲 | 国产精品a级 | 牛人盗摄一区二区三区视频 | 青草影院内射中出高潮 | 在线看免费毛片 | 国产精品永久免费 | 久久久欧美国产精品人妻 | 亚洲中文字幕无码永久在线不卡 | 欧洲精品久久久 | 日韩天堂一区 | 欧美另类天堂 | 亚洲日本一区二区三区在线不卡 | 久久综合色播 | 国产丶欧美丶日本不卡视频 | 丰满圆润自拍少妇啪啪xxx | 中文字幕乱码在线人视频 | 美女裸体十八禁免费网站 | 精品亚洲欧美无人区乱码 | 理论片高清免费理论片毛毛片 | 国产欧美久久久精品影院 | 亚洲色网址 | 人妻熟女一区二区aⅴ水野朝阳 | 久久伊人五月天 | 亚洲色无码专线精品观看 | 曰本大码熟中文字幕 | 欧美成人免费在线观看视频 | 国产精品尤物麻豆一区二区三区 | 高清精品一区二区三区 | 久草在线手机视频 | 成人在线亚洲 | 国产精品久久久久久久久li | 亚洲综合国产精品第一页 | 大地资源中文第三页 | 亚洲精品国产suv | 日韩大片在线永久免费观看网站 | 欧亚毛片 | 亚洲欧美日本在线 | 少妇性l交大片欧洲热妇乱xxx | 少妇china高潮∨jdao | 亚洲欧洲自偷自拍图片 | 欧美在线日韩在线 | 久久久一二三四 | 色悠久久久久久久综合网伊人 | 无套熟女av呻吟在线观看 | 天天曰天天 | 无遮挡很爽很污很黄的网站 | 无码国产玉足脚交久久2020 | 国产精品久久久久久婷婷天堂 | 国产理论高清一卡二卡三卡 | 中文字幕无线码一区2020青青 | 成熟女人牲交片免费 | 中国人与牲禽动交精品 | 久久最新视频 | 亚洲精品久久久久69影院 | 日韩av综合在线 | 97人人模人人爽人人喊电影 | 天天干天天色天天 | 丰满毛多小少妇12p 男人天堂免费 | 亚洲欧美一区二区在线观看 | 日本精品无码一区二区三区久久久 | 国产精品野外av久久久 | 久久综合五月丁香六月丁香 | 亚洲熟妇av日韩熟妇av | 国产精品 欧美日韩 | 综合图片亚洲综合网站 | 人成午夜免费视频在线观看 | 国产精品国产免费无码专区不卡 | 久久久99精品成人片 | 免费看国产一级片 | 欧美在线看片a免费观看 | 国产乱老熟视频网88av | 国产免费人做人爱午夜视频 | 国产99久久精品一区二区 | xxx人与物交性| 毛片手机在线观看 | 亚洲久久色 | 天堂在线精品视频 | 欧美乱妇高清无乱码免费 | 波多野结衣视频在线播放 | 国产一二三四区中 | 少妇疯狂做受xxxx高潮台湾 | 无码东京热一区二区三区 | 狠狠的干性视频 | 女同性精品亚洲 | 欧美激情a∨在线视频播放 国产麻豆精品精东影业av网站 | 国偷自产一区二区免费视频 | 国产suv精二区九色 成人午夜视频网站 | 18禁网站免费无遮挡无码中文 | 日韩性网站 | 国产美女在线看 | caopeng视频 | 成全世界免费高清观看 | 亚洲国产成人精品激情姿源 | 日韩啪 | 国产香蕉97碰碰久久人人 | 精品国产免费人成电影在线看 | 一区天堂 | 日本japanese丰满多毛 | 男女xo视频 | 国产午夜精品av一区二区 | 亚洲色域网| 国产偷国产偷亚洲高清人 | 欧美亚洲国产一区二区三区 | 国产黑色丝袜在线观看片不卡顿 | 99国产欧美另娄久久久精品 | 国产av人人夜夜澡人人爽麻豆 | 人妻系列无码专区无码专区 | 美女视频在线观看福利网站在线观看 | 成人午夜免费在线观看 | 五月天中文字幕mv在线 | 精品国产一区二区三区久久狼 | 小辣椒福利视频精品导航 | 青青草国产免费久久久下载 | 日韩精品999| 大桥久未无码吹潮在线观看 | 亚洲 日韩 国产 中文有码 | 日日草视频 | 亚洲中文字幕av在天堂 | 国产特级毛片aaaaaa毛片 | 成在人线av无码免费漫画 | 内射爽无广熟女亚洲 | 久久免费少妇高潮久久精品99 | 中文字幕精品久久久 | 国产在线你懂 | 成人午夜精品网站在线观看 | 不卡无在线一区二区三区观 | 国产成人久久精品 | 中文字幕乱码视频32 | 成人黄色片网站 | 亚洲国产精品区 | 亚洲综合色站 | 国产偷摄中国推油按摩富婆 | 国产黄色观看 | 日本免费不卡一区在线电影 | 九九热免费| 国产精品久人妻精品 | 日本中文字幕在线免费观看 | 欧美z0zo人禽交欧美人禽交 | 日日插日日干 | 另类视频在线观看+1080p | 国产在线一区二区 | 新四虎 | 国产精品高潮呻吟伦理之爱欲 | 麻豆天美国产一区在线播放 | 国产成人无码精品亚洲 | 久久天天躁狠狠躁夜夜2020一 | 欧美日韩在线第一页免费观看 | 日产精致一致六区麻豆 | 国产精品黑色丝袜在线观看 | 亚洲精品久久国产精品浴池 | eeuss影院www免费最天堂 | 欧美综合自拍亚洲图久青草 | 欧美日韩国产mv | 欧美天天拍在线视频 | 乱lun合集在线观看视频 | 亚洲午夜私人影院在线观看 | 亚洲精品中文字幕久久久久下载 | 对白刺激国产对白精品城中村 | 日日碰狠狠躁久久躁 | 久久久国产精品消防器材 | 日韩欧美一区二区三区免费观看 | www.久久综合 | 国产午夜精品久久精品电影 | 亚洲精品在线国产 | 国产二区视频在线观看 | 色八戒一区二区三区四区 | 各种少妇正面着bbw撒尿视频 | 国产精品人妻久久毛片高清无卡 | 国内精自视频品一2区 | 国产精品国产三级国产an | 国产日产亚洲系列最新美使用方法 | 免费国产黄色片 | 亚洲一级片免费 | 视频毛片| 日本三级香港三级乳网址 | 婷婷夜夜躁天天躁人人躁 | 一本大道无码日韩精品影视_ | 亚洲一区二区三区成人网站 | 午夜在线激情 | 欧美大屁股xxxx高跟欧美黑人 | 国精产品一区一区三区mba下载 | 17婷婷久久www | 在线天堂资源 | 亚洲成a人片在线www | 久草视频免费播放 | 久爱视频在线观看 | 亚洲人成影院在线无码按摩店 | 国产成人av一区二区三区在线观看 | 国产电影无码午夜在线播放 | 国产日产欧美a级毛片 | 欧美91av | 亚洲色大成成人网站久久 | 粉嫩萝控精品福利网站 | 久久久精品人妻一区二区三区四 | 久久伊人五月丁香狠狠色 | 亚洲精品国产精品乱码不97 | 久久免费观看午夜成人网站 | 成人99一区二区激情免费看 | 欧美性猛片xxxxx多人伦交 | 久久久久久久久无码精品亚洲日韩 | 欧洲激情网 | 69堂人成无码免费视频果冻传媒 | 少妇一级淫免费观看 | 91精品国产美女在线观看 | 91久久九色 | 男人的天堂亚洲 | 亚洲 卡通 欧美 制服 中文 | 野花社区免费观看在线www | 91视频合集 | 色欲天天天综合网免费 | 国产精品一线天 | 欧美色二区 | 亚洲成人资源 | 午夜操一操 | 色窝窝无码一区二区三区 | 咪咪色图 | 男人久久天堂 | 国产鲁鲁 | 黄色免费网站在线 | 婷婷社区五月天 | 在线一级片 | 草逼逼视频 | av无码欧洲亚洲电影网 | 性欧美13处14破xxx极品 | 国产女厕所盗摄老师厕所嘘嘘 | 美女视频网址 | 久久婷婷五月综合97色直播 | 三上悠亚的av片在线无码 | 日韩吃奶摸下aa片免费观看 | 欧美性生交xxxx久久久 | 波多野结衣午夜 | 国产精品国产精品偷麻豆 | 国产产无码乱码精品久久鸭 | 五月天激情国产综合婷婷婷 | 强壮公侵犯使我夜夜高潮 | 久久久久久免费免费精品软件 | 亚洲另类欧美小说图片区 | 日产国产精品精品a∨ | 亚洲精品乱码久久久久久麻豆不卡 | 国产又粗又猛又大爽 | 99久久国产热无码精品免费 | 丁香五月激情综合国产 | 亚洲熟妇中文字幕日产无码 | 狠狠色丁香久久婷婷综合图片 | 国内精品自线在拍2020不卡 | 成年无码av片在线蜜芽 | 午夜小福利 | 玩弄美艳馊子高潮无码 | 黄色大片免费网站 | av无码国产精品麻豆 | 波多野结衣中文字幕一区二区三区 | 无码三级在线看中文字幕完整版 | 精品欧美日韩 | 狠狠色婷婷丁香综合久久韩国 | 99久久精品美女高潮喷水 | 亚洲免费福利 | 五月av| 国产免费无遮挡吸乳视频 | 久久视频在线播放 | 久久精品tv| 久久66热这里只有精品 | 免费最爽乱淫无遮挡 | 美女被啪到深处抽搐视频 | 婷婷亚洲图片 | av不卡免费 | 久久久久久在线观看 | 欧美日韩亚洲一区二区三区 | 大胸喷奶水的www的视频网站 | 337p日本大胆欧洲亚洲色噜噜 | 亚洲日本在线观看视频 | 99国产精品久久久久久久成人 | 国产无遮挡18禁无码免费 | 亚洲成av人在线观看成年美女 | 久久东京伊人一本到鬼色 | 台湾性dvd性色av | 欧美最猛性xxxxx黑人巨茎 | 亚洲 欧美 激情 小说 另类 | 免费人妻无码不卡中文18禁 | 国内精品伊人久久久久影院麻豆 | 久久人人做人人爽人人av | 国产成人无码精品久久久性色 | www.国产麻豆 | 成年人黄色免费网站 | 日本视频www | 按摩师他揉我奶好爽捏我奶视频 | 亚洲色欲色欲高清无码 | 人人色在线视频播放 | 校园春色男人天堂 | 午夜综合 | 成人嫩草研究院久久久精品 | 色久综合| 激情另类小说 | 国语对白做受69 | 亚洲人成色7777在线观看不卡 | 最新国产精品自在线观看 | 四虎国产精品永久在线下载 | 亚洲乱色熟女一区二区三区丝袜 | 波多野结衣乳喷高潮视频 | 欧美人与动牲猛交xxxxbbbb | 德国性xxx与另类重口 | 欧美精品亚洲精品日韩传电影 | 欧美 日韩 国产 成人 | 色悠久久久久久久综合网伊人 | 国产精品欧美久久久久三级 | 日本一区二| 激情航班h版在线观看 | 国产亚洲999精品aa片在线爽 | www.99cao | 久久av无码精品人妻系列试探 | 网站一区二区三区 | 最新国产精品好看的精品 | www国产精品视频 | 国产午夜精品一区二区三区极品 | 狠狠欧美| 麻豆亚洲国产成人精品无码区 | 欧美色图偷窥自拍 | 色综合视频一区二区三区44 | 男女啪啪永久免费观看网站 | 欧美区familymoms系列 | 天天操夜夜逼 | 欧美三级午夜理伦三级老人 | 免费观看的av毛片的网站 | 青草精品视频 | 少妇高潮喷水正在播放 | 国产成人综合久久亚洲精品 | 欧美日韩国产一区二区三区不卡 | 美女91网站 | 日韩中文字幕v亚洲中文字幕 | 永久免费的av在线电影网 | 亚洲一区二区三区影视 | 日日噜噜噜夜夜爽爽狠狠蜜臀av | 欧美黑人性暴力猛交高清 | 国产精品免费观看久久 | 青青视频在线播放 | 日韩欧美国产成人 | baoyu123成人免费看视频 | 久久免费黄色网址 | 欧美精品一卡 | 茄子香蕉视频 | 久草在线精品观看 | 特级毛片爽www免费版 | 人成网址| 免费在线视频一区二区 | 久久夜色精品 | 再深点灬舒服灬太大了av网站 | 97视频人人 | 国语对白一区二区三区 | 亚洲成a人片在线观看日本 国产成人免费无码视频在线观看 | 无套内谢少妇毛片aaaa片免费 | 97超级碰碰碰免费公开在线观看 | 极品粉嫩福利午夜在线播放 | 91精品一区二区中文字幕 | 人妻无码人妻有码中文字幕 | 国内精品久久人妻无码网站 | 欧美丰满大乳高跟鞋 | 亚洲国产日韩精品二三四区竹菊 | 日本丰满护士videossexhd 97国产婷婷综合在线视频 | 日韩卡二卡三卡四卡永久入口 | 三个男人添一个女人p的视频 | 欧美人成片免费观看视频 | avav国产| 亚洲精品一区二三区不卡 | www·91 | 桃花视频在线观看高清版mv | 午夜激情婷婷 | 韩国三级视频在线 | 亚洲v天堂 | 成人亚洲网 | 毛片av免费 | 亚欧激情 | 91中文在线| 人人插人人艹 | 人人妻人人澡av天堂香蕉 | 久久中文精品视频 | 女人夜夜春精品a片 | 亚洲精品久久久久久久蜜臀老牛 | 猫咪www免费人成人入口 | 日韩国产黄色 | 久久久久久久97 | 蜜桃av色偷偷av老熟女 | 日韩一区二区三免费高清 | 国产成人免费高清直播 | 国语对白少妇×××bbb | 毛茸茸亚洲孕妇孕交片 | 日韩精品视频三区 | 久久人妻无码中文字幕第一 | 久久精品动漫一区二区三区 | 国产一本一道久久香蕉 | 日本久草视频 | 99热精品毛片全部国产无缓冲 | 欧美交a欧美精品喷水 | 中国老熟妇自拍hd发布 | 国产肥老妇视频 | 日日躁夜夜躁狠狠躁aⅴ蜜 亚洲午夜精品在线观看 | 一本一道波多野结衣一区二区 | 在线观看成人年视频免费 | 人妻 偷拍 无码 中文字幕 | 综合激情五月婷婷 | 欧美日韩在线视频播放 | 国产精品久久久久9999赢消 | 无码人妻精品中文字幕免费东京热 | 欧美日韩亚洲色图 | 成人网站免费观看 | 孕妇爱爱视频 | 在线观看超碰 | 国产农村妇女毛片精品久久麻豆 | 视频丨9l丨白浆 | 午夜性色福利影院 | 丝袜美腿精品国产一区 | 麻花豆传媒剧国产免费mv在线 | 最新国自产拍av | 苍井空亚洲精品aa片在线播放 | 国产麻豆精品av在线观看 | 国产又黄又爽无遮挡的免费软件 | 亚洲精品高清国产一线久久 | 久久a免费视频 | 欧美性生交xxxxx无码久久久 | 久久久久99精品成人片 | 亚洲福利一区 | 乱肉老太婆合集乱500小说 | 色香阁综合无码国产在线 | 无码av永久免费专区麻豆 | 欧美日韩无| 91午夜在线观看 | 人人成人 | 91国在线高清视频 | 天天爱天天做天天做天天吃中文 | 992tv在线成人免费观看 | 男女无遮挡毛片视频免费 | 成人午夜在线观看 | 天堂国产永久综合人亚洲欧美 | 男女无遮挡xx00动态图120秒 | 乱子对白2021 | 强行征服邻居人妻淑敏 | 91精品国产视频 | 免费av网址在线观看 | 在线看亚洲| 中文字幕精品视频在线观看 | 亚洲精品久久久www 天天干天天操天天做 | 女优天堂网 | 中国彝族女人内谢69xxxx | 一区二区三区在线免费 | 性欧美视频一区二区三区 | 国产日韩一区二区在线观看 | 欧美 第一页 | 免费看污又色又爽又黄的小说男男 | 精品无码国产污污污免费网站国产 | 日韩精品视频在线 | 亚洲高清成人 | 久久99精品久久久久久 | 91精品综合久久久久久五月天 | 国产av无码久久精品 | av大天堂 | 国产v综合v亚洲欧 | 久久的久久爽亚洲精品aⅴ 18禁成人黄网站免费观看久久 | 色哟哟亚洲 | 一级大片免费看 | 亚洲精品自拍视频在线观看 | 国内av免费 | jjzzjjzz欧美69巨大 | 欧美激情一区二区三级高清视频 | 亚洲男人第一无码av网 | 日韩精品2区 | 亚洲色婷婷婷婷五月 | 91激情视频在线 | 宝贝av| 亚洲成av人片天堂网九九 | 天天躁日日躁狠狠躁 | 国产成人午夜视频 | 天天操夜夜拍 | 中文字幕 日韩 人妻 无码 | 伊人久久大香线蕉无码综合 | 午夜8888| 香蕉久久国产超碰青草 | 亚洲com | 四虎影视在线免费观看 | 国产日产免费高清欧美一区 | 中文有码无码人妻在线 | 男女扒开双腿猛进入免费看污 | 中文字幕在线看片 | 人人草av| 人妻av综合天堂一区 | 国产欧美在线看 | 亚洲久久在线 | 亚洲性人人天天夜夜摸18禁止 | 最近免费中文字幕 | 一级日韩一级欧美 | 日日夜夜婷婷 | 亚洲精品污 | 爱情岛论坛亚洲永久入口口 | 国产精品视频h | 国产va免费精品高清在线观看 | 国产伦人人人人人人性 | 香蕉大久久 | 国产区精品福利在线社区 | 四虎激情| 成片在线观看 | 成视频年人黄网站免费视频 | 亚洲日本欧美日韩中文字幕 | 久久av资源站| 亚洲天堂自拍偷拍 | 国产婷婷一区 | 国模大胆一区二区三区 | 2023天天操| 亚洲欧美乱综合图片区小说区 | 国产成人精品亚洲日本在线观看 | 97视频在线免费 | 成人免费一级 | 亚洲精品国产精品国自产在线 | 欧女人精69xxxxxx | 91精品国产亚洲 | 黑人巨大精品欧美一区二区一视频 | 国产一区综合 | 加勒比中文无码久久综合色 | 一本在线 | 日韩系列在线观看 | 尤物av无码色av无码麻豆 | 国产午夜精品一区二区三区欧美 | 精品夜色国产国偷在线 | 尤物视频一区 | 日本在线免费观看视频 | 好大好深好猛好爽视频 | 亚洲精品成人无码中文毛片不卡 | 99视频+国产日韩欧美 | 亚洲精品成人久久久 | 中国国产1级毛卡片 | 国产精品人人爽人人做av片 | ass亚洲曰本人体私拍ass | 日本三级高清视频 | 亚洲欧美自偷自拍视频图片 | 国产精品爽爽v在线观看无码 | 成人无码看片在线观看免费 | 无码少妇精品一区二区免费 | 免费黄色毛片 | 亚洲社区在线观看 | 九色91porny | 91精品婷婷国产综合久久性色 | 亚洲色成人四虎在线观看 | 日韩欧美视频在线播放 | 日本少妇一级 | 欧美一级夜夜爽 | 天堂亚洲2017在线观看 | 四虎永久在线观看 | 19+韩国美女vip福利 | 色九区| 亚洲国产精品女人 | 国产猛烈高潮尖叫视频免费 | 亚洲精品卡2卡3卡4卡5卡区 | 亚洲香蕉av | 人妻丰满av无码久久不卡 | 国产午夜大地久久 | 欧美人与禽猛交乱配视频 | 看全色黄大色大片女人爽吗 | 国产精品免费观看久久 | 亚洲第一天堂网 | 黄色三级视频网站 | 色婷婷激情五月 | 精品视频一区二区三区四区戚薇 | 亚洲啪啪综合av一区 | 激情综合色综合啪啪五月丁香 | 人妻无码一区二区三区欧美熟妇 | av网站天堂 | 久久精品中文字幕一区 | 亚洲乱妇老熟女爽到高潮的片 | 久久激情在线 | 一区二区我不卡 | 日韩一卡二卡三卡四卡免费观在线 | 日本黄色xxxx| 三级视频网站 | 亚洲第一成网站 | 最新在线精品国自产拍视频 | 国厂毛片 | 少妇人妻偷人激情视频 | 亚洲精品二区国产综合野狼 | 女女女女bbbb日韩毛片 | 免费av在线播放网址 | 日本韩国在线播放 | 精品视频免费在线 | 欧美日本综合 | 日日橹狠狠爱欧美二区免费视频 | 日韩精品久久久久久免费 | 久久久久久一区国产精品 | 在线观看黄 | 国产一区二区色 | 99久久精品免费 | 精品国产一区二区三区四区四 | 亚洲欧美色视频 | 国产 欧美 亚洲 中文字幕 | 自拍欧美日韩 | 日本爽快片100色毛片视频 | 久久99精品一区二区蜜桃臀 | 天堂国产永久综合人亚洲欧美 | 久久久久无| 裸体性做爰免费视频网站 | 亚洲无吗在线视频 | 日日摸夜夜添狠狠添 | jav成人免费视频 | 四虎网页 | 中文版在线乱码在线看 | 中文字幕一区二区三区乱码不卡 | 九九爱国产 | 开心激情综合网 | 精品999久久久久久中文字幕 | 国产日产成人免费视频在线观看 | 久久精品无码午夜福利理论片 | www.男人的天堂 | 成人免费毛片嘿嘿连载视频 | 手机在线免费观看av | 总裁男男互攻互受h啪肉np文 | xxx日本少妇 | 久草中文网| 日韩最新 | 精品国产乱码久久久久久口爆 | 成人免费专区 | 国产福利资源在线 | 国产精品拍天天在线 | 999免费视频 | 国产精品爆乳奶水无码视频免费 | 久久爱综合| 3a毛片| 精品一区二区三区免费播放 | 免费国产午夜视频在线观看 | 女人又爽又高潮毛片 | 亚欧乱色国产精品免费九库 | 欧乱色国产精品兔费视频 | 久久丫精品忘忧草西安产品 | 色老大久久综合网天天 | 久久大香香蕉国产免费网vrr | 久久精品国产曰本波多野结衣 | 国产卡一卡二卡三无线乱码新区 | 人妻一区二区三区高清av专区 | 日韩精品无码区免费专区 | 很黄的网站在线观看 | 日韩人妻中文无码一区二区三区 | 国语自产偷拍精品视频偷 | 老湿机香蕉久久久久久 | 日韩一区二区中文字幕 | 国产精品青青青高清在线 | 无码小电影在线观看网站免费 | 欧美午夜一区二区 | 亚洲人成网站在线播放大全 | 国产成人免费av一区二区午夜 | 精品产国自在拍 | 女厕偷窥一区二区三区 | 日韩欧美h | 在线观看国产精品av | 亚洲一区二区女搞男 | 国产午夜精品无码一区二区 | 综合图区亚洲另类图片 | 双乳奶水饱满少妇呻吟免费看 | 亚洲va韩国va欧美va精四季 | 国产传媒毛片精品视频第一次 | 手机看片福利在线 | 欧美日韩在线视频首页 | 免费无码又爽又刺激高潮软件 | 婷婷天堂 | 亚洲熟妇另类久久久久久 | 最近更新中文字幕 | 久久精品99久久香蕉国产色戒 | www.av日韩 | 熟女人妻av完整一区二区三区 | 免费国精产品—品二品 | 91污视频在线观看 | 亚洲欧美另类综合偷拍 | 女人喷液抽搐高潮视频 | 男人天堂网2017 | 一级黄色在线视频 | 天天综合天天色 | 日韩视频专区 | 欧美一区二区三区婷婷月色 | 无码免费中文字幕视频 | 国产成人日韩 | 欧美亚洲另类丝袜综合网 | 欧美506070老妇乱子伦 | 免费欧洲美女牲交视频 | 美女黄网页| 无码人妻斩一区二区三区 | 狠狠躁天天躁无码中文字幕 | 欧美色图一区二区 | www.色综合.com| 国产97在线视频 | 国产v亚洲v天堂a无码 | 热久精品 | 亚洲精品午夜一区二区电影院 | 中文字幕不卡 | 久久精品亚洲酒店 | 又黄又爽又猛的视频免费 | 高潮毛片无遮挡免费看 | 亚洲 欧美 精品 | 久久精品国产清自在天天线 | 一本大道东京热无码aⅴ | 爽啪啪gif动态图第136期 | 高h文h肉h柔佳 | 亚洲高清免费视频 | 免费的网站永久免费 | 国产v69 | 亚洲日韩中文在线精品第一 | 一呦二呦三呦精品网站 | 亚洲成色网 | 欧美一级片在线免费观看 | 少妇和黑人老外做爰av | 999在线免费视频 | 日韩在线国产 | 超碰天天 | 日韩一区二区三区射精 | 伊人性伊人情综合网 | 少妇高潮无套无遮挡内谢小说 | 日日摸夜夜添夜夜添无码 | 欧美精品成人a区在线观看 狠狠操天天 | 亚洲最大色网站 | 婷婷色综合视频在线观看 | 伊人久久久久久久久久 | 久久香港三级台湾三级播放 | 一本色道久久亚洲精品加勒比 | 久久精品国内 | 国产寡妇亲子伦一区二区三区 | 日本公与熄乱理在线播放 | 极品粉嫩国产48尤物在线播放 | 手机在线视频你懂的 | 日产日韩亚洲欧美综合在线 | 无码国产69精品久久久孕妇 | 国产欧美va欧美va香蕉在 | 丰满人妻熟妇乱偷人无码 | 女人精69xxxxx明星 | 日韩av一区二区三区在线观看 | 欧美日韩aa| 九九热视频这里只有精品 | 午夜免费啪视频 | 国产伦人人人人人人性 | 99免费 | 欧美一区二区三区久久久 | 国产美女a做受大片观看 | 伊人网狼人 | 国产精品s色 | 欧美特黄在线观看 | 中文字幕日韩精品亚洲一区小树林 | 日韩国产精品一区二区三区 | 国产边摸边吃奶边叫做激情视频 | 91在线视频| 久久精品成人免费观看 | 99爱视频在线观看 | 成人欧美一区二区三区a片 国产午夜亚洲精品不卡网站 | 久久精品青青草原伊人 | 伊人精品在线观看 | 国产成人a人亚洲精v品无码 | 国产中的精品av一区二区 | 国产高清不卡无码视频 | 国产色欲av一区二区三区 | 18禁止观看强奷免费国产大片 | 草逼导航 | 中国女人69xxx | 久久夜色精品国产欧美乱极品 | 天堂中文在线视频 | 国产免费黄网站 | 国产怡红院在线观看 | 青草网 | 成人午夜福利院在线观看 | 十八禁av无码免费网站 | 99riav国产在线观看 | 网禁国产you女网站 91美女图片黄在线观看 | 国产毛片一区二区三区软件 | 国产乱xxⅹxx国语对白 | 丰满少妇小早川怜子影片了 | 国产成人精品优优av | 秋霞午夜鲁丝一区二区老狼 | 女人喷液抽搐高潮视频 | 狠狠色噜噜狠狠狠狠av | 成人在线激情 | 中国熟妇人妻xxxxx | 亚洲中文色欧另类欧美 | 在线看日韩av | 久久99久久98精品免观看软件 | 亚洲精品一区二区三区四区手机版 | 9999国产精品| 无码人妻aⅴ一区二区三区有奶水 | 亚洲专区在线视频 | 骚女人干起来舒服视频在线 | 亚洲欧美一区二区三区不卡 | 久99国产精品人妻aⅴ | 日本孕妇潮喷高潮视频 | 亚洲激情成人网 | 精品国产肉丝袜在线拍国语 | 久久艹在线 | 成人亚洲一区二区三区在线 | 欧美大片在线看免费观看 | 91香草站| 中文字幕在线精品中文字幕导入 | aaa国产视频 | 免费成人进口网站 | 欧美一区二区黄色 | 6080一级片| 久久精品人妻无码专区 | 欧美黑粗大| 成人毛片无码免费播放网站 | 国产精品va尤物在线观看蜜芽 | 欧美顶级丰满另类xxx | 99久热在线精品996热是什么 | 成人性生交大片 | 亚洲中文字幕在线第六区 | 三级中文字幕 | 少妇高潮流白浆在线观看 | 天天操天天射天天爱 | 欧美日韩一本无线码专区 | 成人 黄 色 免费播放 | 91成人海角社区 | 午夜福利片国产精品 | 日本免费高清 | 国产成人av亚洲一区二区 | 亚洲欧美色图 | 色综合久久蜜芽国产精品 | 日韩日日夜夜 | 国产超碰人人 | 国产熟妇精品高潮一区二区三区 | 久久久精品中文字幕乱码18 | 久久婷婷是五月综合色 | 999精品久久久 | 五月天在线播放 | 成人宗合网 | 国产精品无码av片在线观看播放 | 牛牛影视精品一区二区在线看 | 精品国产丝袜黑色高跟鞋 | 国产成人欧美亚洲日韩电影 | 免费看a毛片 | 五月天精品在线 | 日本高清色本在线www | 永久av在线 | 国产精品无码专区在线播放 | 91新婚少妇在线播放 | 国产欧美一区二区三区在线看蜜臀 | 337p日本欧洲亚洲大胆裸体艺术 | 影音先锋人妻每日资源站 | 无码精品视频一区二区三区 | 天堂岛国av无码免费无禁网站 | 加勒比久久综合网天天 | 久久国产热这里只有精品 | 伊人久久影视 | 国产对白自拍 | 色综合久久一区二区三区 | 成人国内精品久久久久影院 | 日本怡红院免费全部的视频 | 国产一区二区久久精品 | 亚洲精品国产成人99久久6 | 国产又爽又大又黄a片软件 国产bbbbbxxxxx精品 | 欧美xxxx精品另类 | 精品久久久久久国产潘金莲 | 久草免费福利在线 | 五月婷婷激色号网 | 成人激情综合网 | 色爽 av | 日本不卡一区二区三区在线 | av无码av在线a∨天堂app | 国产高颜值大学生情侣酒店 | 韩日黄色毛片 | 亚洲视频在线观看一区二区 | 日韩在线不卡免费视频一区 | 精品国产一区二区三区蜜殿 | 本道久久综合无码中文字幕 | 黄瓜污视频在线观看 | 日本aⅴ写真网站免费 | 中文字幕乱码在线播放 | 日本国产制服丝袜一区 | 国产精品久久久久久亚洲 | 色官网| 成人性生交大片免费看冫视频 | 国产黑丝一区二区 | 亚洲 欧洲 日韩 | 特黄 大片做受又粗又硬又大 | 欧美老妇交乱视频在线观看 | 亚洲国产成人字幕久久 | 在线视频一区少妇露脸福利在线 | 忘忧草社区在线资源www | 真实乱子伦露脸自拍 | 精品国产午夜肉伦伦影院 | 亚洲桃色综合影院 | 国产佗精品一区二区三区 | 手机在线看片日韩 | 黑人巨大精品欧美黑白配亚洲 | 操综合网 | 性做久久久久久 | 欧美日本在线看 | 欧美人与动性xxxxx交性 | 特级婬片国产高清视频 | 黑人30厘米少妇高潮全部进入 | 狠狠色噜噜狠狠狠狠色吗综合 | 国产欧美另类久久久精品丝瓜 | 激情小说av | 日本高清视频一区 | 亚洲大片免费观看 | 色偷偷青青草 | 国产精品久久成人网站 | 在线天堂在线 | 日韩av网页| 久久看片网 | 999国产在线视频 | 黄床大片免费30分钟国产精品 | 青青草99热 | 久久婷婷国产91天堂综合精品 | 国产亚洲久久久久久久 | 男人天堂五月天 | 亚洲人黄色片 | 激情的网站 | 高清不卡亚洲日韩av在线 | 男女性杂交内射女bbwxz | 99久久re免费热在线 | 国产喷水1区2区3区咪咪爱av | 日韩三级中文字幕 | 国产又黄又爽又色视频 | 国产91蝌蚪 | 麻豆果冻国产剧情av在线播放 | 五月色婷婷综合 | 爱情岛论坛网亚洲品质 | 毛片久久久久 | 丁香婷婷六月综合交清 | 日本一级一片免费视频 | 中文字幕亚洲中文字幕无码码 | 3d动漫精品啪啪一区二区中 | 国产成人欧美日本在线观看 | 色哟哟在线视频精品一区 | 亚洲va久久久噜噜噜久久天堂 | 99九九99九九视频精品 | 国产一级aa大片毛片 | 国产福利日本一区二区三区 | 两性髙潮一级特黄毛片 | 亚洲国产日韩在线人成蜜芽 | 国产亚洲精品久久久久久老妇 | 中文字幕人妻无码专区app | 久久www免费人成—看片 | 欧美ay | 亚洲精品美女在线观看 | 又黄又爽又色两性午夜小说 | 国产精品久久久久久久久久久久久久久 | 亚洲伦理一区 | 欧美在线免费观看视频 | 把腿张开老子臊烂你多p视频 | 亚洲欧美又粗又长久久久 | 日韩一区欧美一区 | 久久国产精品99久久久大便 | 天干啦夜天干天干在线线 | 国产jk制服精品无码视频 | 天天摸天天摸色综合舒服网 | 婷婷俺也去俺也去官网 | 亚洲欧美中文日韩v在线观看 | 免费毛片小视频 | 成人欧美一区二区三区a片 国产午夜亚洲精品不卡网站 | 男人天堂黄色 | av无码久久久久久不卡网站 | 亚洲第三区 | 那里有毛片看 | 97久久久久久久久久久久 | 操碰在线视频 | 久久久久久久久精 | 午夜时刻免费入口 | 色爽| 久久人人妻人人做人人爽 | 久久久无码人妻精品无码 | 无码专区视频精品老司机 | 九一精品国产白色高跟鞋 | 东京天堂网天堂网 | 欧美一区二区高清视频 | 91精品久久久久含羞草 | 亚洲欧洲自拍偷拍 | 亚洲色无码播放 | 18禁黄久久久aaa片 | 亚洲精品一卡2卡三卡4卡乱码天 | 在线观看黄网址 | 免费无码又爽又刺激激情视频 | 日本高清视频www | 亚洲乱 亚洲乱 亚洲 | 午夜一二区 | 亚洲中文字幕va福利 | 日韩精品第二页 | 中东又粗又爽毛片av | 少妇精品无码一区二区三区 | 亚洲女人av久久天堂 | 日本护士xxxxhd少妇 | 日韩av自拍 | 一区二区三区日韩欧美 | 日日碰狠狠添天天爽超碰97久久 | 亚洲啊v在线| 日本伦奷在线播放 | 18禁午夜宅男成年网站 | 成人精品影院 | 日本成人中文字幕 | av亚洲午夜网站福利天堂 | 国产精品无码av片在线观看播放 | 极品av麻豆国产在线观看 | 久久精品小视频 | 天堂一码二码专区 | 懂色av粉嫩av蜜乳av | 国产精品1234| 欧美黄视频网站 | 日本熟妇人妻中出 | 无码精品国产一区二区三区免费 | av网站在线不卡 | 网址在线观看你懂的 | 黄色三级在线视频 | 麻豆妓女爽爽一区二区三 | 69pao国产成人免费 | 一本色道久久综合亚州精品蜜桃 | 日本久久99成人网站 | 国产亚洲精品久久情网 | 男人扒开女人内裤强吻桶进去 | 99国产精品久久久久99打野战 | av免费网站观看 | 黑人入室粗暴人妻中出 | 无码精油按摩潮喷在播放 | 婷婷五月深爱憿情网 | 亚洲人成电影在线观看网色 | 国产又色又爽又刺激在线播放 | 麻豆精品一区二区三区在线观看 | 手机看片日韩欧美 | 欧洲国产精品无码专区影院 | 亚洲国产精品一区二区成人片不卡 | 玩弄人妻少妇500系列网址 | 日韩在线亚洲 | 久久久九九九热 | 可以直接看的无码av | 国产精品久久久久久99人妻精品 | 81精品国产乱码久久久久久 | 亚洲最大成人av在线天堂网 | 中文字幕人妻熟女人妻洋洋 | xx色综合| 国产高清亚洲精品视bt天堂频 | 人妻少妇精品久久 | 欧美一道本 | 99色这里只有精品 | 99热免费在线 | 亚洲激情久久 | 青青草视频播放器 | 欧美三区 | 丰满大乳少妇毛片视频 | 按摩偷拍 | 在线观看黄a∨免费无毒网站 | 四虎国产精品永久在线下载 | 开心激情五月网 | 男男gv白嫩小受gv在线播放 | 国产小视频自拍 | 久涩涩福利视频在线观看 | 欧美大片va欧美在线播放 | 亚洲欧美影视 | 一区视频免费在线观看 | 亚洲 欧美 中文 日韩aⅴ | 久久精品毛片免费观看 | 国产精品污污网站 | 欧美亚洲亚洲日韩在线影院 | 久草在线资源总站 | 亚洲色无码一区二区三区 | 中文字幕在线观看亚洲 | 久久久亚洲欧洲日产国码农村 | 国产精品女教师av久久 | 免费在线观看毛片 | 91丨九色丨丰满 | 欧美大胆a视频 | 人妖粗暴刺激videos呻吟 | 又粗又爽又猛高潮的在线视频 | 亚洲成a人片在线观看无码3d | 国产高潮又爽又刺激的视频免费 | 日韩av无码免费播放 | 国产精品视频网址 | 免费国产小视频 | 日韩精品无码成人专区av | 亚洲图片综合图区20p | 蜜臀av国内精品久久久夜夜蜜臀 | 欧美一级性生活 | 日韩精品hd | 国产午夜福利精品久久2021 | 草裙社区精品视频三区免费看 | 三叶草欧洲码在线 | 四虎在线网站 | 欧美人体一区二区视频 | 亚洲一区亚洲二区 | 亚洲精品乱码久久久久久蜜桃图片 | 在办公室被c到呻吟的动态图 | 中国熟女仑乱hd | 五月天色丁香 | 青青国产视频 | 日本熟妇色高清播放 | 日韩一区二区影院 | 国产成人亚洲精品无码青app | 日本亲子乱子伦xxxx | 人妻少妇偷人无码视频 | 欧美不卡| 山外人精品影院 | 天码人妻一区二区三区 | www四虎影院 | 日韩 国产 变态另类 欧美 | 国产对白乱刺激福利视频 | 天天爽天天操 | 国产三级久久 | 天天拍夜夜添久久精品 | 久久综合网欧美色妞网 | 91午夜精品亚洲一区二区三区 | 67194成是人免费无码 | av成人亚洲 | 女人扒开屁股爽桶30分钟 | 日韩在线中文高清在线资源 | 午夜免费福利影院 | 一区二区欧美在线观看 | 久久国产激情 | 日韩精品tv | 国产精品老汉av | 日本久久久久久久久 | 噜噜噜亚洲色成人网站 | 亚洲女人一区 | 久久99精品国产麻豆91樱花 | 99久久国产综合精品女图图等你 | 国产丰满麻豆videossexhd 日本熟妇人妻xxxxx | 精品无人区一区二区三区在线 | 男人的天堂视频在线观看 | 肉感饱满中年熟妇日本 | 亚洲欧美另类在线视频 | 国产精品成人久久电影 | 久久免费看少妇高潮v片特黄 | 无码丰满熟妇浪潮一区二区av | 97国产精品一区二区 | 国产精品白丝av在线观看播放 | 亚洲国产天堂av | 亚洲综合一区在线 | 香蕉午夜视频 | 久久精品无码av | 久久精品久久精品 | www.620com国产精品 | 天天操视频网站 | 尹人香蕉久久99天天拍久女久 | 亚洲精品乱码日本按摩久久久久 | 国产女人aaa级久久久级 | 久久中文字幕网 | 久久久精品二区 | 欧美日本亚洲韩国一区 | 五月天丁香花婷婷 | 91啦中文在线 | 青青网站| 国产精品视频一区二区噜噜 | 午夜一区二区三区 | 亚洲人成网站色www 国产又粗又猛又爽的免费网站 | 噜噜噜久久久 | 新婚人妻不戴套国产精品 | 成人污污污www网站免费 | 亚洲高清视频在线播放 | 免费人成网站免费看视频 | 色屁屁www影院免费观看 | 精品久久久久久中文墓无码 | 极度另类bbwbbwbbw日本 | 热久久视久久精品2019 | 亚洲午夜精品福利 | 三年中国中文在线观看视频 | www.蜜臀.com| 日韩福利视频在线观看 | 亚洲人人爱 | 欧美中文字幕在线观看 | 欧美精品一区二区三区蜜桃视频 | 亚洲精品xxx | 91tv国产成人福利 | 97久久国产露脸精品国产 | 精彩国产萝视频在线 | 一级持黄录像免费观看 | 国产三级在线观看播放视频 | 雨宫琴音一区二区在线 | 一区二区三区四区欧美 | 在线播放国产一区二区三区 | 亚洲国产欧美日韩图片在线人成 | 欧美体内she精视频 蘑菇视频成人 | 成人免费毛片东京热 | 日韩成人在线免费观看 | 少妇精品偷拍高潮少妇18p爱豆 | 春色校园激情综合在线 | 国产精成人品日日拍夜夜免费 | 狠狠色先锋资源网 | 欧美 日韩 三区 | 91片黄在线观 | 无码国产69精品久久久久网站 | 四季久久免费一区二区三区四区 | 亚洲一区二区在线免费观看 | 美女操操视频 | 秋霞av在线 | 欧美性大战xxxxx久久久 | 国产情侣真实54分钟在线 | 日本视频免费在线 | 亚洲国产成人最新精品 | 国产免费又爽又色又粗视频 | 高清无码h版动漫在线观看 爽爽影院在线 |