久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 6004|回復: 10

單片機開發之C語言編程基本規范

  [復制鏈接]
1#
發表于 2017-10-14 11:20:06 | 只看該作者 |倒序瀏覽 |閱讀模式
為了提高源程序的質量和可維護性,從而最終提高軟件產品生產力,特編寫此規范。本標準規定了程序設計人員進行程序設計時必須遵循的規范。本規范主要針對單片機編程語言和08編譯器而言,包括排版、注釋、命名、變量使用、代碼可測性、程序效率、質量保證等內容。
, I/ X3 [( r9 b4 O& ~* `
1.基本規則 ( b& n6 p: X% X3 B0 f$ M; W
格式清晰、注釋簡明扼要、命名規范易懂、函數模塊化、程序易讀易維護、功能準確實現、代碼空間效率和時間效率高、適度的可擴展性、單片機編程規范-標識符命名 9 l3 x+ C& y8 @! D: A
2.標識符命名 2.1 命名基本原則 3 d8 H% e1 `# V/ X6 ?* d
1)命名清晰明了,有明確含義,使用完整單詞或約定俗成的縮寫。通常,較短的單詞可通過去掉元音字母形成縮寫;較長的單詞可取單詞的頭幾個字母形成縮寫。即"見名知意"。(2)命名風格要自始至終保持一致。 1 E% O/ Y+ E! B2 [0 P
3)命名中若使用特殊約定或縮寫,要有注釋說明。
9 z: H4 `/ {# A9 o. r6 O+ @
4)同一軟件產品內模塊之間接口部分的標識符名稱之前加上模塊標識。% y( T3 `0 S# O: X% ]5 c, l
2.2 宏和常量命名 5 C5 r4 h2 v/ b" z' C1 f
宏和常量用全部大寫字母來命名,詞與詞之間用下劃線分隔。對程序中用到的數字均應用有意義的枚舉或宏來代替。
5 y1 D' m  R9 g, \# D" Y# E
2.3 變量命名
% |; q0 Z; U  x1 D. m% a; L+ i; c0 Q
變量名用小寫字母命名,每個詞的第一個字母大寫。類型前綴(u8\s8 etc.)全局變量另加前綴g_。# |5 l" M4 T3 \; P; c
局部變量應簡明扼要。局部循環體控制變量優先使用i、j、k等;局部長度變量優先使用len、num等;臨時中間變量優先使用temp、tmp等。* A0 A, D0 Z, J5 h  D6 O
2.4 函數命名 ( q8 V1 r3 g3 D3 k1 i. I
函數名用小寫字母命名,每個詞的第一個字母大寫,并將模塊標識加在最前面。0 |4 V+ A. G+ ?/ b' ~0 K( G
2.5 文件命名 : |, j, n8 M  ?( [" d, F# @* c# q+ W
一個文件包含一類功能或一個模塊的所有函數,文件名稱應清楚表明其功能或性質。
1 ]1 D5 m4 v. X$ Y5 l
每個.c文件應該有一個同名的.h文件作為頭文件。
  g6 @& W! M* Z' ^* ?8 T
3.注釋 3.1 注釋基本原則   v5 T2 J" _# B2 r
有助于對程序的閱讀理解,說明程序在"做什么",解釋代碼的目的、功能和采用的方法。9 B( }7 y6 T6 r
一般情況源程序有效注釋量在30%左右。* S" K+ V1 X2 B: ?2 U$ }
注釋語言必須準確、易懂、簡潔。
- _3 r4 y5 g0 ]6 P% y# j. t
邊寫代碼邊注釋,修改代碼同時修改相應的注釋,不再有用的注釋要刪除。
8 h  k. n/ i, C. @9 o
匯編和C中都用"//",取消";"  不使用段注釋" /*  */ "(調試時可用)
4 F& c+ t: K( E3 [5 P8 S; J
3.2 文件注釋
! s, F; W( V+ B! _
文件注釋必須說明文件名、函數功能、創建人、創建日期、版本信息等相關信息。, h6 Y0 r: x8 X7 p7 |% v+ E
修改文件代碼時,應在文件注釋中記錄修改日期、修改人員,并簡要說明此次修改的目的。所有修改記錄必須保持完整。4 }% ]* ~, }; G$ F3 V- [7 c  v5 r
文件注釋放在文件頂端,用"/*……*/"格式包含。7 V8 \9 T3 a& N2 B7 o: Y& h8 k$ H
注釋文本每行縮進4個空格;每個注釋文本分項名稱應對齊。9 R7 h9 N! i  `, {* v5 H0 V
/***********************************************************
/ J& Y$ F  s  E1 Q$ A0 r, A' l( H
文件名稱:
" D4 U! K+ m  F1 L' h% B$ p+ O! a
者:
* g# A5 G3 ]8 X  ^
本:; D$ M3 g: `5 [' M! g
明:
6 G/ t; I9 P4 u" r8 X6 E$ ?& @1 `
修改記錄:" r$ Z0 x  \+ j1 p/ J
***********************************************************/
  S8 ^2 p+ b0 I5 w$ {2 a
3.3 函數注釋 % |9 ]0 ~, C  ^- S4 f
3.3.1 函數頭部注釋! T# _! [) z! ]& j) u- h
函數頭部注釋應包括函數名稱、函數功能、入口參數、出口參數等內容。如有必要還可增加作者、創建日期、修改記錄(備注)等相關項目。
+ P: |+ u  H2 a2 y: E5 v( ?4 a
函數頭部注釋放在每個函數的頂端,用"/*……*/"的格式包含。其中函數名稱應簡寫為Name(),不加入、出口參數等信息。
  D, H4 A6 m$ s( D# E  t
/***********************************************************0 U" k5 |0 z8 Z! J
函數名稱:: l" x9 a4 P6 `/ Y  Y
函數功能:
3 W, u/ a9 R0 W) z/ R& A2 I+ ?$ g
入口參數:& R" C$ M3 v* M! b
出口參數:- f& k8 e" f5 k( v1 R0 F
注:
& q8 G, \3 P# J( ], k
***********************************************************/6 `' Z+ e! c# n5 B9 c! E
3.3.2 代碼注釋
9 B( v8 X+ e- j
代碼注釋應與被注釋的代碼緊鄰,放在其上方或右方,不可放在下面。如放于上方則需與其上面的代碼用空行隔開。一般少量注釋應該添加在被注釋語句的行尾,一個函數內的多個注釋左對齊;較多注釋則應加在上方且注釋行與被注釋的語句左對齊信盈達嵌入式企鵝要妖氣嗚嗚吧久零就要  c1 N  L2 o. ?0 c
函數代碼注釋用"//…//"的格式。9 t/ ~: p2 ?6 X7 u' Q
通常,分支語句(條件分支、循環語句等)必須編寫注釋。其程序塊結束行"}"的右方應加表明該程序塊結束的標記"end of ……", 尤其在多重嵌套時。
: Z7 ]. q) r9 b# p- X
3.4 變量、常量、宏的注釋 - X3 m1 g) c' n
同一類型的標識符應集中定義,并在定義之前一行對其共性加以統一注釋。對單個標識符的注釋加在定義語句的行尾。( r$ }- f: B6 F) e, m- k
全局變量一定要有詳細的注釋,包括其功能、取值范圍、哪些函數或過程存取它以及存取時的注意事項等。0 e' U& @# ]7 @. I0 O
注釋用"//…//"的格式。 . ~' i7 q/ i( [5 r" K/ C! p/ k
4.函數 4.1 函數設計原則
9 V$ @+ P7 {8 a$ k. @) ]
函數的基本要求:
  {% g% N1 f. ?4 X7 m1 g
1)封裝性* `2 a7 I+ K+ G" o! L% b8 S
1) 正確性:程序要實現設計要求的功能。1 w: ~8 Q1 u' m
2) 穩定性和安全性:程序運行穩定、可靠、安全。
/ Y8 t* _# E; i8 p
3) 可測試性:程序便于測試和評價。# W1 F2 \  H8 ~) \8 U
4) 規范/可讀性:程序書寫風格、命名規則等符合規范。
& D2 i  G1 j/ r( j/ B# m% O5 k
5) 擴展性:代碼為下一次升級擴展留有空間和接口。* t; Q' W$ ?! A" ~; }. O3 u; K
6) 全局效率:軟件系統的整體效率高。
, c. Q- t0 G5 ~- ?, N& G0 `2 N
7) 局部效率:某個模塊/子模塊/函數的本身效率高。
& [, p3 g+ g6 @& J$ E: T
編制函數的基本原則:
. Z% i8 b0 h9 e% {3 E: E8 r
1) 單個函數的規模盡量限制在200行以內(不包括注釋和空行)。一個函數只完成一個功能。, u1 ?  e+ w! S1 A
2) 函數局部變量的數目一般不超過5~10個。; Q9 {  l. M" d
3) 函數內部局部變量定義區和功能實現區(包含變量初始化)之間空一行。1 v; e9 p3 z/ U
4) 函數名應準確描述函數的功能。通常使用動賓詞組為執行某操作的函數命名。: M- {7 [, M! [  A5 [
5) 函數的返回值要清楚明了,尤其是出錯返回值的意義要準確無誤。; a, q9 V5 R# F( i4 J2 k
6) 不要把與函數返回值類型不同的變量,以編譯系統默認的轉換方式或強制的轉換方式作為返回值返回。
* j' ~5 K/ \8 p8 C; q3 J& \
7) 減少函數本身或函數間的遞歸調用。
1 [6 v' ?! k  J' i3 U
8) 盡量不要將函數的參數作為工作變量。
* t* o8 Q' ?$ T- A) s! g* W9 l' a
4.2 函數定義 9 b7 \: U5 z; B6 v, L
1) 函數若沒有入口參數或者出口參數,應用void明確申明。
( J0 u0 Y) X) E; N5 ]- f) \
2) 函數名稱與出口參數類型定義間應該空一格且只空一格。
% }+ |. N0 |% M6 o3 P8 ]; g; k
3) 函數名稱與括號()之間無空格。; K. I6 E( T) K: m" G
4) 函數形參必須給出明確的類型定義。4 p" |! L5 K* _7 U. u2 p/ L& Q( z) O
5) 多個形參的函數,后一個形參與前一個形參的逗號分割符之間添加一個空格。
/ K# I( s. r6 S5 f+ {& L; V+ o" M
6) 函數體的前后花括號"{}" 各獨占一行。7 i0 {, Q5 Y9 T
4.3 局部變量定義
1 X3 R' t6 X# Y4 `1 ~
1) 同一行內不要定義過多變量。
% ?! H8 S$ v4 l
2) 同一類的變量在同一行內定義,或者在相鄰行定義。- m. a3 U) d& K/ C
3) 先定義data型變量,再定義idtata型變量,再定義xdata型變量.(?)3 o; N3 J, L1 w% N& w9 N
4) 數組、指針等復雜類型的定義放在定義區的最后。4 t, o6 H3 H' n
5) 變量定義區不做較復雜的變量賦值。2 |0 d+ P  @3 x) r1 g! w& R
4.4 功能實現區規范 " [. w' m8 [! k4 f( c9 A
1) 一行只寫一條語句。  s% h! i( j# p! {* y+ ^
2) 注意運算符的優先級,并用括號明確表達式的操作順序,避免使用默認優先級信盈達嵌入式企鵝要妖氣嗚嗚吧久零就要
8 c7 l2 [; O3 a- Q% V% L5 |
3) 各程序段之間使用一個空行分隔,加以必要的注釋。程序段指能完一個較具體的功能的一行或多行代碼。程序段內的各行代碼之間相互依賴性較強。(1、2、3方式)
  x+ W" n6 R8 e
4) 不要使用難懂的技巧性很高的語句。; H( D/ [4 a: e, x, Q2 @
5) 源程序中關系較為緊密的代碼應盡可能相鄰。
8 V3 f" N- i/ v, E) z
6) 完成簡單功能、關系非常密切的一條或幾條語句可編寫為函數或定義為宏。
8 A. r' [0 H& D9 D/ Y3 e+ H3 I. S" }4 V
5. 單片機編程規范-排版 $ u+ c; X! I. _! m+ [: S
5.1 縮進 0 t; |, L$ y- b! J: P3 ?3 ]; {( `
代碼的每一級均往右縮進4個空格的位置。不使用Tab鍵
  [% ^$ b8 o4 g$ _$ A
5.2 分行
0 s! _  S* F+ R3 X& v: s
每行語句(?????超過80個字符)要分成多行書寫;長表達式要在低優先級操作符處劃分新行,操作符放在新行之首,劃分出的新行要進適當的縮進,使排版整齊,語句可讀。避免把注釋插入分行中。
; X; A( H* e6 C& }3 R6 y  G
5.3 空行
6 h2 c; O) F# x6 R. Q* m
1) 文件注釋區、頭文件引用區、函數間應該有且只有一行空行。
6 I/ ~' k5 n: E" z9 A$ S" ]6 P1 c
2) 相鄰函數之間應該有且只有一行空行。
: V% s9 b$ J( M5 ?2 k; E" O
3) 函數體內相對獨立的程序塊之間可以用一行空行或注釋來分隔。1 }. Z5 d/ I7 l
4) 函數注釋和對應的函數體之間不應該有空行。
4 m2 o. f4 s4 R& }/ M
5) 文件末尾有且只有一行空行。
6 h  {/ g% P& \, r
5.4 空格 : z7 q' t- `7 a# e4 n, N1 g0 M- P
1) 函數語句尾部或者注釋之后不能有空格。
& Z7 n3 \, ?* Z1 M. W9 i& @
2) 括號內側(即左括號后面和右括號前面)不加空格,多重括號間不加空格。
' y5 F7 p# f+ X
3) 函數形參之間應該有且只有一個空格(形參逗號后面加空格)。! {7 {. q4 R+ a+ B  \0 u& V1 |
4) 同一行中定義的多個變量間應該有且只有一個空格(變量逗號后面加空格)。
0 Y) g/ x) a/ b
5) 表達式中,若有多個操作符連寫的情況,應使用空格對它們分隔:
/ d( ?5 }/ g6 V
6) 在兩個以上的關鍵字、變量、常量進行對等操作時,它們之間的操作符前后均加一個空格;在兩個以上的關鍵字、變量、常量進行非對等操作時,其前后均不應加空格;4 X8 ?( N+ t' x6 `* j
7) 逗號只在后面加空格;
( ]" s/ B6 w/ R/ h& v$ V" p1 k
8) 雙目操作符,如比較操作符, 賦值操作符"="、"+=",算術操作符"+"、"%",邏輯操作符"&&"、"&",位操作符"<<"、"^"等,前后均加一個空格;
% `6 [; U2 I8 r+ I
9) 單目操作符,如"!"、"~"、"++"、"-"、"&"(地址運算符)等,前后不加空格;7 O3 P  j+ m; V& W
10) "->"、"."前后不加空格;2 ?" }/ l4 j3 C1 C7 ?
11) if、for、while、switch等關鍵字與后面的括號間加一個空格;
! G7 l% m+ ]2 B) N6 e
5.5 花括號 + X6 `7 l0 {7 Z- J+ n
1)  if、else if、else、for、while語句無論其執行體是一條語句還是多條語句都必須加花括號,且左右花括號各獨占一行。
" K+ H- w7 Q% s
2)  do{}while()結構中,"do"和"{"均各占一行,"}"和"while();"共同占用一行。
$ c  d8 f$ W8 A; }- w- s
if ( ) do4 N  c) m8 S* ?1 \7 p' d
{ {
1 l1 L$ }/ z( ^
} }while( );7 R2 X( X. m% W8 V& t6 `! S
else
6 K* O% v5 N, P7 x$ l+ J
{2 y; N% I  S( @
}9 `5 Y0 A# u& M
嵌套越少越好,{}不準超過3層  
' l+ e5 d% s5 S( J% {( _4 p' g* j
5.6 switch語句 0 P! y! a% y: b0 u: ^
1) 每個case和其判據條件獨占一行。2 z% T" J; D+ {$ L; }  ~+ V4 B' }: |
2) 每個case程序塊需用break結束。特殊情況下需要從一個case塊順序執行到下一個case塊的時候除外,但需要花括號在交界處明確注釋如此操作的原因,以防止出錯。
1 b5 T8 H, t9 [. o
3) case程序塊之間空一行,且只空一行。; J0 D+ l' j' b4 y+ ^5 {
4) 每個case程序塊的執行語句保持4個空格的縮進。* o: Z2 Z/ U$ _7 g7 X7 t
5) 一般情況下都應該包含default分支。
. V2 P% ?0 d9 S( P( S1 X
Switch ( )
* [6 Z+ Y0 w: u
{
- N, q2 `( s% }, i7 D' ?$ R7 q0 J
case x:
, y) D  R. l" X# u8 O* f
break;5 [( Q# l7 X5 w/ |6 s6 _
case x:
+ N. F; q, Y- S6 W! z* O
break;* h0 `1 o; Y7 n  w9 p6 b
default:
# W$ L$ ?5 s  U/ H5 h2 T
break;
$ n$ a3 [4 S8 H+ D4 R
}
1 y& H0 B9 _3 l% j1 E' x2 l
6.程序結構 6.1 基本要求 6 v- @5 s/ K: {8 m' c
1) 有main()函數的.c文件應將main()放在最前面,并明確用void聲明參數和返回值。
/ a* U# ^9 Q& Q+ O' [% d
2) 對由多個.c文件組成的模塊程序或完整監控程序,建立公共引用頭文件,將需要引用的庫頭文件、標準寄存器定義頭文件、自定義的頭文件、全局變量等均包含在內,供每個文件引用。通常,標準函數庫頭文件采用尖角號< >標志文件名,自定義頭文件采用雙撇號″″標志文件名。
7 y8 k6 [8 {4 t
3) 每個.c文件有一個對應的.h文件,.c文件的注釋之后首先定義一個唯一的文件標志宏,并在對應的.h文件中解析該標志。- J0 o8 O+ Q& i; @! k( ?
.c文件中:& N* H  A7 g4 u3 V" A
#define FILE_FLAG
  N  l% R8 o9 v
.h文件中:&, f7 u6 ?' m) P5 q2 b
6.程序結構 6.1 基本要求
8 H+ H" q/ T6 _* S- V- B
1) 有main()函數的.c文件應將main()放在最前面,并明確用void聲明參數和返回值。
& R$ e* t4 D: A: z6 I; K' H
2) 對由多個.c文件組成的模塊程序或完整監控程序,建立公共引用頭文件,將需要引用的庫頭文件、標準寄存器定義頭文件、自定義的頭文件、全局變量等均包含在內,供每個文件引用。通常,標準函數庫頭文件采用尖角號< >標志文件名,自定義頭文件采用雙撇號″″標志文件名。
2 V$ ~0 C. x/ s: L4 a$ j6 ^- J
3) 每個.c文件有一個對應的.h文件,.c文件的注釋之后首先定義一個唯一的文件標志宏,并在對應的.h文件中解析該標志。
* ~& @/ B5 Q+ z6 g
.c文件中:
9 W! W' p) J1 J1 d- U& E; ~, t
#define FILE_FLAG6 p8 t6 `* Q2 h& c2 N  m
.h文件中:8 A: J4 l+ p, B7 J- x5 {
#ifdef FILE_FLAG
, u$ V" z! I$ Z
#define XXX
) }4 L2 Z, h. q9 ]4 p- s) o
#else
' L: [9 Z$ H! x4 B3 G
#define XXX extern
* V5 h6 W& O( W9 X/ o
#endif
+ r* g& G; C* n: _: `) }
4)  對于確定只被某個.c文件調用的定義可以單獨列在一個頭文件中、單獨調用。
2 U& \! ?, B' w; B, B& P

! V; T# M3 I: [+ `3 _
回復

使用道具 舉報

2#
發表于 2017-10-14 12:38:19 | 只看該作者
搞單片機的,電氣都是高手啊;比只編PLC強多了
3#
發表于 2017-10-14 14:58:23 | 只看該作者
學習力
回復

使用道具 舉報

4#
發表于 2017-10-14 14:58:47 | 只看該作者
學習了
+ T% U" `# V7 }/ u% T: I, q! L5 s8 u- F+ a" E, E, g/ T. C% C8 s
回復

使用道具 舉報

5#
發表于 2017-10-14 16:58:35 | 只看該作者
大學里可惜沒好好學
6#
發表于 2017-10-14 21:42:52 | 只看該作者
單片機是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用
7#
 樓主| 發表于 2017-11-12 16:03:57 | 只看該作者
余罪HN 發表于 2017-10-14 16:58" e$ B  Z3 F. s
大學里可惜沒好好學

. Y6 E) d0 R0 M5 D& Y+ |現在想學習也不晚啊,知識和技術都是給想學和愿意學習的人的!qq1175589091
" M- H9 R3 M6 d6 Z2 z6 ]
8#
發表于 2017-11-13 09:35:54 | 只看該作者
tainqing 發表于 2017-11-12 16:03
+ R  @& u3 c% c# T/ H% h現在想學習也不晚啊,知識和技術都是給想學和愿意學習的人的!qq1175589091
* l& E1 a3 y: e. G0 m7 V; N8 Y+ F
現在用不到呀。。。我從事的是鍛造加工這一塊的。。學英語比較靠譜,都是出口的,客戶都是老外。。。不過知識給想學的人這點沒錯% }1 _/ j5 L2 Y5 O2 H  W! E  R
9#
發表于 2019-4-4 15:55:37 | 只看該作者
學習
回復

使用道具 舉報

10#
發表于 2019-4-23 17:23:09 | 只看該作者
學習了,多謝樓主
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-10-15 19:46 , Processed in 0.074179 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱
91香蕉视频在线| 国产精品系列在线| 欧美韩国日本一区| 丁香婷婷综合色啪| 91精品啪在线观看国产60岁| 丝袜a∨在线一区二区三区不卡| 亚洲成人自拍视频| 国产无人区一区二区三区| 国产成人免费在线观看不卡| 欧美精品在欧美一区二区少妇| 美女脱光内衣内裤视频久久影院| 国产日韩视频| 亚洲美女淫视频| 日韩午夜电影| 亚洲天堂福利av| 在线成人黄色| 亚洲欧洲日韩av| 国产精品豆花视频| 国产精品网站在线| 亚洲无线视频| 亚洲色图视频免费播放| 亚洲日本精品国产第一区| 亚洲欧美一区二区不卡| 亚洲美女视频在线免费观看 | 国产亚洲欧美一区二区| 亚洲欧美日本在线| 亚洲深夜激情| 亚洲h动漫在线| 色综合久久六月婷婷中文字幕| 午夜电影网一区| 91国偷自产一区二区使用方法| 麻豆91小视频| 8v天堂国产在线一区二区| 国产99久久久国产精品免费看| 日韩精品一区二区三区中文精品| 成人精品视频.| 国产日产精品1区| 91久久精品www人人做人人爽| 一区二区三区精品视频在线| 亚洲一区三区视频在线观看| 天天综合色天天综合色h| 在线影视一区二区三区| 国产老妇另类xxxxx| 欧美电影精品一区二区| 欧美成人蜜桃| 亚洲视频一区二区在线观看| 国产精品永久入口久久久| 日本在线播放一区二区三区| 在线成人av网站| jizz一区二区| 亚洲图片你懂的| 日本高清不卡在线观看| 极品少妇xxxx偷拍精品少妇| 精品久久久久久亚洲综合网| 国产自产在线视频一区| 亚洲人成网站影音先锋播放| 蜜桃av综合| 国产制服丝袜一区| 久久久久久久久久久久久久久99| 一区二区视频在线观看| 天天综合色天天综合| 9191国产精品| 欧美日韩国产色综合一二三四| 一区二区三区丝袜| 欧美日韩国产另类一区| 91天堂素人约啪| 亚洲综合激情另类小说区| 欧美日韩在线亚洲一区蜜芽| 91在线小视频| 亚洲午夜av在线| 在线观看91av| 国产精品播放| 日本中文字幕一区二区视频| 欧美变态口味重另类| 亚洲黄色av| 久草这里只有精品视频| 国产视频视频一区| 久久综合九色综合欧美狠狠| 成人精品视频网站| 亚洲欧美区自拍先锋| 欧美日韩国产a| 国产精品hd| 蜜桃一区二区三区在线| 亚洲精品一线二线三线无人区| 中文高清一区| 国产精品一二一区| 日韩理论片在线| 欧美精品高清视频| 亚洲黄色成人| 国产综合久久久久影院| 国产精品国产a级| 欧美日韩高清影院| 狠狠色噜噜狠狠色综合久| 日韩高清不卡一区二区| 久久久久国产一区二区三区四区 | 色激情天天射综合网| 99这里都是精品| 三级久久三级久久| 国产无遮挡一区二区三区毛片日本| 久久久久久久尹人综合网亚洲| 成人av网站免费观看| 午夜视频在线观看一区二区三区| 精品电影一区二区| 免费在线国产精品| thepron国产精品| 日韩不卡一区二区| 久久精品亚洲精品国产欧美 | 色综合久久久久综合99| 欧美成人tv| 久久97超碰国产精品超碰| 成人免费一区二区三区在线观看| 在线观看91精品国产麻豆| 国产一区二区三区黄| 99久久免费精品| 久久99精品久久久久久动态图 | 麻豆精品视频在线观看视频| 日本一区二区电影| 欧美福利视频一区| 欧美亚洲免费在线| 91麻豆国产福利在线观看| 日韩在线观看一区二区| 中文字幕欧美国产| 3d动漫精品啪啪一区二区竹菊| 国产伦理一区| 午夜欧美精品久久久久久久| 国产乱码精品一区二区三区忘忧草| 亚洲一区二区欧美日韩| 欧美激情一区二区三区不卡| 欧美精品一级二级| 老司机一区二区三区| 国内精品嫩模av私拍在线观看| 国v精品久久久网| 蜜桃精品在线观看| 亚洲午夜精品一区二区三区他趣| 国产精品日日摸夜夜摸av| 69久久99精品久久久久婷婷 | 欧美videos大乳护士334| 欧美在线观看你懂的| 国产精品一区二区三区四区五区 | 在线视频你懂得一区二区三区| 激情另类综合| av中文字幕不卡| 国产一区二区三区观看| 日韩电影在线观看网站| 樱桃视频在线观看一区| 日本一区二区三区在线不卡| 日韩亚洲欧美在线观看| 欧美日韩一区二区欧美激情| 国产精品毛片在线看| 国产精品黄色| 91在线看国产| 成人美女在线观看| 国产精品99久久久久久似苏梦涵| 蜜臀久久久久久久| 偷拍一区二区三区| 亚洲一区二区在线播放相泽| 亚洲欧美另类在线| 一区在线观看视频| 国产精品理论片在线观看| 国产亚洲欧美日韩日本| 精品粉嫩aⅴ一区二区三区四区| 欧美一区二区三区白人| 91精品在线一区二区| 欧美性高清videossexo| 91久久久免费一区二区| 一本大道久久a久久精品综合| 久久精品日韩| 亚洲一区一卡| 亚洲欧美bt| 亚洲一区二区高清视频| 国产一区二区三区的电影 | 美女视频黄 久久| 亚洲3atv精品一区二区三区| 一区二区三区欧美日| 一区二区三区中文在线| 最好看的中文字幕久久| 亚洲天堂2014| 亚洲精品高清在线| 艳妇臀荡乳欲伦亚洲一区| 樱桃视频在线观看一区| 一区二区理论电影在线观看| 亚洲愉拍自拍另类高清精品| 亚洲综合男人的天堂| 亚洲成人先锋电影| 三级在线观看一区二区| 日本人妖一区二区| 精品一区二区三区在线观看| 国产在线国偷精品免费看| 精品在线观看免费| 国产不卡视频一区二区三区| 成人晚上爱看视频| av高清不卡在线| 欧美成人国产| 一区二区在线视频观看| 国产午夜精品一区二区三区欧美 | 国产精品美女黄网| 久热精品视频| 欧美三级视频在线观看| 69久久夜色精品国产69蝌蚪网| 日韩精品一区二区三区在线观看|