日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++ 预处理与宏相关编程(#,##等等)

發(fā)布時(shí)間:2025/3/15 c/c++ 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 预处理与宏相关编程(#,##等等) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、簡(jiǎn)介引言

C++?模板元編程?(template metaprogramming)?雖然功能強(qiáng)大,但也有?局限性

  • 不能通過(guò) 模板展開(kāi) 生成新的?標(biāo)識(shí)符(identifier)。例如:生成新的 函數(shù)名、類名、名字空間名 等
  • 使用者 只能使用 預(yù)先定義的標(biāo)識(shí)符,不能通過(guò) 模板參數(shù) 獲取?符號(hào)/標(biāo)記(token)?的?字面量(literal)
  • 例如 在反射中獲取 實(shí)參參數(shù)名的字面量,在斷言中獲取 表達(dá)式的字面量。

所以,在需要直接?操作標(biāo)識(shí)符?的情況下,還需要借助?,進(jìn)行?預(yù)處理階段的元編程

  • 和?編譯時(shí)(compile-time)?的?模板?展開(kāi)不同,?在編譯前的預(yù)處理(preprocess)?階段全部展開(kāi) —— 狹義上,編譯器 看不到且不處理 宏代碼。
  • 通過(guò)?#define/TOKEN1##TOKEN2/#TOKEN?定義?宏對(duì)象(object-like macro)?和?宏函數(shù)(function-like macro),可以實(shí)現(xiàn)替換文本、拼接標(biāo)識(shí)符、獲取字面量等功能。

?

1.1? 關(guān)于C++宏編程調(diào)試

很多人因?yàn)?“宏編程” 無(wú)法調(diào)試,而直接 “從入門到放棄” —— 不經(jīng)意的?符號(hào)拼寫錯(cuò)誤、參數(shù)個(gè)數(shù)錯(cuò)誤,導(dǎo)致文本?不能正確替換,從而帶來(lái)?滿屏的編譯錯(cuò)誤,最后?難以定位?問(wèn)題所在 ——

  • 最壞的情況下,編譯器?只會(huì)告訴你?cpp 文件 編譯時(shí)出現(xiàn)?語(yǔ)法錯(cuò)誤
  • 最好的情況下,編譯器?可能告訴你?XXX 宏 展開(kāi)結(jié)果里包含?語(yǔ)法錯(cuò)誤
  • 而永遠(yuǎn)?不會(huì)告訴你?是因?yàn)?XXX 宏展開(kāi)成什么樣,導(dǎo)致 YYY 宏展開(kāi)失敗
  • 最后?只能看到?ZZZ 宏展開(kāi)錯(cuò)誤

由于宏代碼會(huì) 在編譯前全部展開(kāi),我們可以:

  • 讓編譯器?僅輸出預(yù)處理結(jié)果
  • gcc -E?讓編譯器 在預(yù)處理結(jié)束后停止,不進(jìn)行 編譯、鏈接
  • gcc -P?屏蔽編譯器 輸出預(yù)處理結(jié)果的?行標(biāo)記 (linemarker),減少干擾。并結(jié)合??__LINE__;;; 宏實(shí)現(xiàn)代碼行數(shù)和位置的定位。
  • 另外,由于輸出結(jié)果沒(méi)有格式化,建議先傳給?clang-format?格式化后再輸出
  • 屏蔽?無(wú)關(guān)的?頭文件

?

二、宏編程的常見(jiàn)使用模式

C(和C++)中的宏(Macro)屬于編譯器預(yù)處理的范疇,屬于編譯期概念(而非運(yùn)行期概念)。下面對(duì)常遇到的宏的使用問(wèn)題做了簡(jiǎn)單總結(jié)。

2.1 關(guān)于#和## (# 符號(hào)拼接)

在C語(yǔ)言的宏中,#的功能是將其后面的宏參數(shù)進(jìn)行字符串化操作(Stringfication),簡(jiǎn)單說(shuō)就是在對(duì)它所引用的宏變量通過(guò)替換后在其左右各加上一個(gè)雙引號(hào)。比如下面代碼中的宏:

#define WARN_IF(EXP) \ do { \if (EXP) \ fprintf(stderr, "Warning: " #EXP "\n"); \ }while(0)

那么實(shí)際使用中會(huì)出現(xiàn)下面所示的替換過(guò)程:

WARN_IF (divider == 0);

被替換為:

do { if (divider == 0) fprintf(stderr, "Warning" "divider == 0" "\n"); } while(0);

這樣每次divider(除數(shù))為0的時(shí)候便會(huì)在標(biāo)準(zhǔn)錯(cuò)誤流上輸出一個(gè)提示信息。

而## 被稱為連接符(concatenator),用來(lái)將兩個(gè)Token連接為一個(gè)Token。注意這里連接的對(duì)象是Token就行,而不一定是宏的變量。比如你要做一個(gè)菜單項(xiàng)命令名和函數(shù)指針組成的結(jié)構(gòu)體的數(shù)組,并且希望在函數(shù)名和菜單項(xiàng)命令名之間有直觀的,名字上的關(guān)系。那么下面的代碼就非常實(shí)用:

struct command { char * name; void (*function) (void); }; #define COMMAND(NAME) { NAME, NAME ## _command }

然后你就用一些預(yù)先定義好的命令來(lái)方便的初始化一個(gè)command結(jié)構(gòu)的數(shù)組了:

struct command commands[] = { COMMAND(quit), COMMAND(help), ... }

COMMAND宏在這里充當(dāng)一個(gè)代碼生成器的作用,這樣可以在一定程度上減少代碼密度,間接地也可以減少不留心所造成的錯(cuò)誤。我們還可以n個(gè)##符號(hào)連接 n+1個(gè)Token,這個(gè)特性也是#符號(hào)所不具備的。比如:

#define LINK_MULTIPLE(a,b,c,d) a##_##b##_##c##_##d typedef struct _record_type LINK_MULTIPLE(name,company,position,salary);

這里這個(gè)語(yǔ)句將展開(kāi)為:

typedef struct _record_type name_company_position_salary;

2.2 關(guān)于...的使用(## 變長(zhǎng)參數(shù))

...在C宏中稱為Variadic Macro,也就是變參宏。

在GNU C中,從C99開(kāi)始,宏可以接受可變數(shù)目的參數(shù),就象可變參數(shù)函數(shù)一樣。和函數(shù)一樣,宏也用三個(gè)點(diǎn)…來(lái)表示可變參數(shù)

__VA_ARGS__ 宏

__VA_ARGS__ 宏用來(lái)表示可變參數(shù)的內(nèi)容,簡(jiǎn)單來(lái)說(shuō)就是將左邊宏中 … 的內(nèi)容原樣抄寫在右邊__VA_ARGS__ 所在的位置。如下例代碼:

#include <stdio.h> #define debug(...) printf(__VA_ARGS__) int main(void) {int year = 2018;debug("this year is %d\n", year); //效果同printf("this year is %d\n", year); }

可變參數(shù)別稱

另外,通過(guò)一些語(yǔ)法,你可以給可變參數(shù)起一個(gè)名字,而不是使用__VA_ARGS__ ,如下例中的args:

#include <stdio.h> #define debug(format, args...) printf(format, args) int main(void) {int year = 2018;debug("this year is %d\n", year); //效果同printf("this year is %d\n", year); }

無(wú)參傳入情況

與可變參數(shù)函數(shù)不同的是,可變參數(shù)宏中的可變參數(shù)必須至少有一個(gè)參數(shù)傳入,不然會(huì)報(bào)錯(cuò),為了解決這個(gè)問(wèn)題,需要一個(gè)特殊的“##”操作,如果可變參數(shù)被忽略或?yàn)榭?#xff0c;“##”操作將使預(yù)處理器(preprocessor)去除掉它前面的那個(gè)逗號(hào)。如下例所示

#include <stdio.h> #define debug(format, args...) printf(format, ##args) int main(void) {int year = 2018;debug("hello, world"); //只有format參數(shù),沒(méi)有args可變參數(shù) }
  • 宏連接符##

舉個(gè)例子:宏定義為#define XNAME(n) x##n,代碼為:XNAME(4),則在預(yù)編譯時(shí),宏發(fā)現(xiàn)XNAME(4)與XNAME(n)匹配,則令 n 為 4,然后將右邊的n的內(nèi)容也變?yōu)?,然后將整個(gè)XNAME(4)替換為 x##n,亦即 x4,故最終結(jié)果為 XNAME(4) 變?yōu)?x4。如下例所示:

#include <stdio.h> #define XNAME(n) x##n #define PRINT_XN(n) printf("x" #n " = %d\n", x##n); int main(void) {int XNAME(1) = 14; // becomes int x1 = 14;int XNAME(2) = 20; // becomes int x2 = 20;PRINT_XN(1); // becomes printf("x1 = %d\n", x1);PRINT_XN(2); // becomes printf("x2 = %d\n", x2);return 0; }

2.3? 特殊符號(hào)

和模板元編程不一樣,宏編程?沒(méi)有類型?的概念,輸入和輸出都是?符號(hào)?—— 不涉及編譯時(shí)的 C++ 語(yǔ)法,只進(jìn)行編譯前的?文本替換

  • 一個(gè)?宏參數(shù)?是一個(gè)任意的?符號(hào)序列(token sequence),不同宏參數(shù)之間 用逗號(hào)分隔
  • 每個(gè)參數(shù)可以是?空序列,且空白字符會(huì)被忽略(例如?a + 1?和?a+1?相同)
  • 在一個(gè)參數(shù)內(nèi),不能出現(xiàn)?逗號(hào)(comma)?或 不配對(duì)的?括號(hào)(parenthesis)(例如?FOO(bool, std::pair<int, int>)?被認(rèn)為是?FOO()?有三個(gè)參數(shù):bool?/?std::pair<int?/?int>)

如果需要把?std::pair<int, int>?作為一個(gè)參數(shù),一種方法是使用 C++ 的?類型別名?(type alias)(例如?using IntPair = std::pair<int, int>;),避免 參數(shù)中出現(xiàn)逗號(hào)(即?FOO(bool, IntPair)?只有兩個(gè)參數(shù))。

更通用的方法是使用?括號(hào)對(duì)?封裝每個(gè)參數(shù)(下文稱為?元組),并在最終展開(kāi)時(shí) 移除括號(hào)(元組解包)即可:

#define PP_REMOVE_PARENS(T) PP_REMOVE_PARENS_IMPL T #define PP_REMOVE_PARENS_IMPL(...) __VA_ARGS__#define FOO(A, B) int foo(A x, B y) #define BAR(A, B) FOO(PP_REMOVE_PARENS(A), PP_REMOVE_PARENS(B))FOO(bool, IntPair) // -> int foo(bool x, IntPair y) BAR((bool), (std::pair<int, int>)) // -> int foo(bool x, std::pair<int, int> y)
  • PP_REMOVE_PARENS(T)?展開(kāi)為?PP_REMOVE_PARENS_IMPL T?的形式
  • 如果參數(shù)?T?是一個(gè)?括號(hào)對(duì),那么展開(kāi)結(jié)果會(huì)變成?調(diào)用宏函數(shù)PP_REMOVE_PARENS_IMPL (...)?的形式
  • 接著,PP_REMOVE_PARENS_IMPL(...)?再展開(kāi)為參數(shù)本身?__VA_ARGS__(下文提到的?變長(zhǎng)參數(shù)),即元組?T?的內(nèi)容

另外,常用宏函數(shù) 代替?特殊符號(hào),用于下文提到的?惰性求值

#define PP_COMMA() , #define PP_LPAREN() ( #define PP_RPAREN() ) #define PP_EMPTY()

2.4 其他

宏編程也具有強(qiáng)大的計(jì)算能力,是否是圖靈完備型。筆者尚不確定。不過(guò)如?BOOST_PP:目前流行的?預(yù)處理庫(kù)(preprocessor library) 里利用宏編程實(shí)現(xiàn)了很多計(jì)算語(yǔ)句的基礎(chǔ)結(jié)構(gòu),如:自增自減、邏輯運(yùn)算、布爾轉(zhuǎn)換、條件選擇、惰性求值、下標(biāo)訪問(wèn)、參數(shù)長(zhǎng)度判空,長(zhǎng)度計(jì)算、遍歷訪問(wèn)、符號(hào)匹配、以及提供了常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)(如 元組、序列、列表、數(shù)組等)、此外還有數(shù)值運(yùn)算、數(shù)值比較等等。可以參見(jiàn)知乎一篇文章:C/C++ 宏編程的藝術(shù)。

?

三、使用宏時(shí)需要注意的點(diǎn)

3.1? 錯(cuò)誤的嵌套-Misnesting

宏的定義不一定要有完整的、配對(duì)的括號(hào),但是為了避免出錯(cuò)并且提高可讀性,最好避免這樣使用。

3.2? 由操作符優(yōu)先級(jí)引起的問(wèn)題-Operator Precedence Problem

由于宏只是簡(jiǎn)單的替換,宏的參數(shù)如果是復(fù)合結(jié)構(gòu),那么通過(guò)替換之后可能由于各個(gè)參數(shù)之間的操作符優(yōu)先級(jí)高于單個(gè)參數(shù)內(nèi)部各部分之間相互作用的操作符優(yōu)先級(jí),如果我們不用括號(hào)保護(hù)各個(gè)宏參數(shù),可能會(huì)產(chǎn)生預(yù)想不到的情形。比如:

#define ceil_div(x, y) (x + y - 1) / y

那么

a = ceil_div( b & c, sizeof(int) );

將被轉(zhuǎn)化為:

a = ( b & c + sizeof(int) - 1) / sizeof(int);

由于+/-的優(yōu)先級(jí)高于&的優(yōu)先級(jí),那么上面式子等同于:

a = ( b & (c + sizeof(int) - 1)) / sizeof(int);

這顯然不是調(diào)用者的初衷。為了避免這種情況發(fā)生,應(yīng)當(dāng)多寫幾個(gè)括號(hào):

#define ceil_div(x, y) (((x) + (y) - 1) / (y))

3.3?消除多余的分號(hào)-Semicolon Swallowing

通常情況下,為了使函數(shù)模樣的宏在表面上看起來(lái)像一個(gè)通常的C語(yǔ)言調(diào)用一樣,通常情況下我們?cè)诤甑暮竺婕由弦粋€(gè)分號(hào),比如下面的帶參宏:

MY_MACRO(x);

但是如果是下面的情況:

#define MY_MACRO(x) { \ /* line 1 */ \ /* line 2 */ \ /* line 3 */ } //... if (condition()) MY_MACRO(a); else {... }

這樣會(huì)由于多出的那個(gè)分號(hào)產(chǎn)生編譯錯(cuò)誤。為了避免這種情況出現(xiàn)同時(shí)保持MY_MACRO(x);的這種寫法,我們需要把宏定義為這種形式:

#define MY_MACRO(x) do { /* line 1 */ \ /* line 2 */ \ /* line 3 */ } while(0)

這樣只要保證總是使用分號(hào),就不會(huì)有任何問(wèn)題。

3.4 Duplication of Side Effects

這里的Side Effect是指宏在展開(kāi)的時(shí)候?qū)ζ鋮?shù)可能進(jìn)行多次Evaluation(也就是取值),但是如果這個(gè)宏參數(shù)是一個(gè)函數(shù),那么就有可能被調(diào)用多次從而達(dá)到不一致的結(jié)果,甚至?xí)l(fā)生更嚴(yán)重的錯(cuò)誤。比如:

#define min(X,Y) ((X) > (Y) ? (Y) : (X)) //... c = min(a,foo(b));

這時(shí)foo()函數(shù)就被調(diào)用了兩次。為了解決這個(gè)潛在的問(wèn)題,我們應(yīng)當(dāng)這樣寫min(X,Y)這個(gè)宏:

#define min(X,Y) ({ \ typeof (X) x_ = (X); \ typeof (Y) y_ = (Y); \ (x_ < y_) ? x_ : y_; })

({...})的作用是將內(nèi)部的幾條語(yǔ)句中最后一條的值返回,它也允許在內(nèi)部聲明變量(因?yàn)樗ㄟ^(guò)大括號(hào)組成了一個(gè)局部Scope)。

一些有意思的問(wèn)題

  • 下面的代碼:
#define display(name) printf(""#name"") int main() { display(name); }

運(yùn)行結(jié)果是name,為什么不是"#name"呢?

#在這里是字符串化的意思,printf(""#name"") 相當(dāng)于 printf("" "name" "").

printf("" #name "") <1>
相當(dāng)于printf("" "name" "") <2>
而<2>中的第2,3個(gè)“中間時(shí)空格 等價(jià)于("空+name+空')

## 連接符號(hào)由兩個(gè)井號(hào)組成,其功能是在帶參數(shù)的宏定義中將兩個(gè)子串(token)聯(lián)接起來(lái),從而形成一個(gè)新的子串。但它不可以是第一個(gè)或者最后一個(gè)子串。所謂的子串 (token)就是指編譯器能夠識(shí)別的最小語(yǔ)法單元。具體的定義在編譯原理里有詳盡的解釋,但不知道也無(wú)所謂。同時(shí)值得注意的是#符是把傳遞過(guò)來(lái)的參數(shù)當(dāng)成字符串進(jìn)行替代。下面來(lái)看看它們是怎樣工作的。這是MSDN上的一個(gè)例子。

假設(shè)程序中已經(jīng)定義了這樣一個(gè)帶參數(shù)的宏

#define paster( n ) printf( "token" #n " = %d", token##n )

同時(shí)又定義了一個(gè)整形變量:

int token9 = 9;

現(xiàn)在在主程序中以下面的方式調(diào)用這個(gè)宏:

paster(9);

那么在編譯時(shí),上面的這句話被擴(kuò)展為:

printf( "token" "9" " = %d", token9 );

注意到在這個(gè)例子中,paster(9);中的這個(gè)”9”被原封不動(dòng)的當(dāng)成了一個(gè)字符串,與”token”連接在了一起,從而成為了token9。而#n也被”9”所替代。

可想而知,上面程序運(yùn)行的結(jié)果就是在屏幕上打印出token9=9.

#define display(name) printf(""#name"") int main() { display(name); }

特殊性就在于它是個(gè)宏,宏里面處理#號(hào)就如LS所說(shuō)!
處理后就是一個(gè)附加的字符串!

但printf(""#name"");就不行了!

#define display(name) printf(""#name"")

該定義字符串化name,得到結(jié)果其實(shí)就是printf("name")(前后的空字符串拿掉), 這樣輸出來(lái)的自然是 name .

從另外一個(gè)角度講, #是一個(gè)連接符號(hào), 參與運(yùn)算了, 自然不會(huì)輸出了.

?

?

總結(jié)

以上是生活随笔為你收集整理的C++ 预处理与宏相关编程(#,##等等)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

综合色伊人| 国产亚洲精品久久久久5区 成人h电影在线观看 | 亚洲91精品在线观看 | 日韩网站免费观看 | 成人国产电影在线观看 | 日韩免费在线观看视频 | 天天干天天操天天射 | 亚洲成人午夜av | 国产精品女同一区二区三区久久夜 | 五月天六月丁香 | 91精品国产高清自在线观看 | 国产视频中文字幕在线观看 | 欧美,日韩 | 婷婷日| 超碰在线最新地址 | 综合精品久久 | 免费福利片2019潦草影视午夜 | 在线观看精品 | 国产一区在线免费观看视频 | 九九在线高清精品视频 | 国产aaa免费视频 | 在线岛国av | 日本中文字幕免费观看 | 欧美一级电影 | 九九热1 | 国产精品麻豆视频 | av在线免费网 | 菠萝菠萝蜜在线播放 | 精品国产伦一区二区三区观看方式 | 黄色三级免费网址 | 国产精品字幕 | 亚洲免费不卡 | 日本久久久久久科技有限公司 | 免费在线观看国产黄 | 天天操天天操天天操天天操 | 超碰97在线人人 | 色综合久久88色综合天天人守婷 | 国产九九精品视频 | 丁香激情综合久久伊人久久 | 亚洲一区精品二人人爽久久 | 96av在线视频 | 久久躁日日躁aaaaxxxx | 国内精品久久久久久中文字幕 | 视频精品一区二区三区 | 精品产品国产在线不卡 | 国产一级精品绿帽视频 | 精品久久久久国产免费第一页 | 国产又粗又猛又黄又爽视频 | 久久av网址 | 国内99视频| 国产亚洲精品bv在线观看 | 国产成人高清 | 在线国产一区二区 | 日韩三级在线 | 美女视频黄免费的久久 | 91在线观 | 玖玖玖在线 | 午夜精品视频免费在线观看 | 91成人在线免费观看 | 在线免费黄网站 | 欧美激情操 | 99人成在线观看视频 | 国产精品 中文字幕 亚洲 欧美 | 国产久草在线 | 99久久久久| 日韩欧美网站 | 久久精品视频在线 | 中文字幕在线观看日本 | 在线国产99 | 日日夜夜干 | 日韩在线网址 | a天堂免费| 欧美a级在线播放 | 中文区中文字幕免费看 | 五月天网站在线 | 精品欧美在线视频 | 激情片av | 在线不卡a| 日韩av中文 | 狠狠色噜噜狠狠狠合久 | 狠狠干网| 午夜精选视频 | 久久艹国产 | 久久久久久免费毛片精品 | 99视频在线观看免费 | 亚洲精品a区| 欧美一区在线观看视频 | 久久精品视频在线 | 91av免费观看 | 看国产黄色片 | 国产免费国产 | 在线日韩av | 久久精品123 | 日本bbbb摸bbbb| 国产又粗又猛又爽又黄的视频先 | 激情校园亚洲 | 91精品国产欧美一区二区成人 | 在线播放日韩av | 中文字幕在线观看视频一区 | 国产一级黄色片免费看 | 国产成人免费高清 | 日韩av片无码一区二区不卡电影 | 欧美日韩免费观看一区=区三区 | 国产精彩视频一区 | 中文字幕日韩电影 | 国产一级片免费观看 | 亚洲国产人午在线一二区 | 亚洲日本一区二区在线 | 国产成人福利在线观看 | 国产一区 在线播放 | 热久久免费视频精品 | 亚洲国产精品久久久久婷婷884 | 天天操天操 | 色综合天天综合在线视频 | 国产午夜三级一区二区三桃花影视 | 国产成人一区二区在线观看 | 99热九九这里只有精品10 | 免费亚洲黄色 | 国产在线传媒 | 国产亚洲在线视频 | 久久久免费 | 色夜视频| 久久avav | 色综合久久久久久久 | 97福利在线观看 | 久久久国产视频 | 久久艹在线 | av丁香| 999日韩| 午夜 免费 | 亚洲国产精品久久 | 午夜av大片 | 欧美91在线| 亚洲精品美女久久久久网站 | 曰韩精品 | 成年人视频在线免费 | 日韩精品一区二区三区三炮视频 | 国产精品久久久久久一区二区 | 久久久久久网址 | 国产一级黄色片免费看 | 黄色大片免费播放 | 美女精品国产 | av资源免费观看 | 极品久久久久久久 | 免费看三片 | 免费看片网站91 | 国产又黄又爽无遮挡 | 在线观看涩涩 | 亚洲精品午夜久久久 | 免费看一及片 | 精品影院 | 中文字幕五区 | 国产高清一级 | 黄色一级大片在线免费看产 | 27xxoo无遮挡动态视频 | 精品免费国产一区二区三区四区 | 激情综合亚洲 | 久久精品一区二区三区国产主播 | 成人网色| 国产无遮挡猛进猛出免费软件 | 91网页版免费观看 | 欧美日韩国产精品一区二区 | 日韩欧美一区二区三区黑寡妇 | 久草久草在线 | 国产欧美精品一区二区三区四区 | 精品99在线观看 | 中文字幕一区二区三区四区视频 | 亚洲五月婷 | 久久精品视频99 | 国产成人久久精品77777 | 日韩av电影网站在线观看 | 日日爽| 亚洲欧洲在线视频 | 四季av综合网站 | 99精品视频一区二区 | 日韩综合视频在线观看 | 久久尤物电影视频在线观看 | 日本黄色大片儿 | a级成人毛片 | 91c网站色版视频 | 又黄又爽又无遮挡免费的网站 | 婷婷久久婷婷 | 午夜精品久久一牛影视 | 中文字幕在线播放一区 | 97色国产 | 亚洲在线高清 | 久久精品99国产精品亚洲最刺激 | 久久久久国产一区二区三区四区 | 热久久最新地址 | 91片黄在线观 | 国产精品观看在线亚洲人成网 | 欧美日韩在线免费观看视频 | 久久综合加勒比 | 日韩在线视频免费播放 | 色吊丝av中文字幕 | 久久观看 | 爱爱av网| 极品嫩模被强到高潮呻吟91 | 又色又爽又黄高潮的免费视频 | 日韩成人精品一区二区三区 | 欧美激情视频三区 | 国产亚洲一区二区在线观看 | 久久久首页 | 亚洲女人天堂成人av在线 | 日韩av视屏 | 99热精品久久 | 久久手机精品视频 | 欧美成年网站 | 国产美女视频网站 | www.黄色在线 | 国产性xxxx | 国产在线a视频 | 久久一区国产 | 久久成人福利 | 有码视频在线观看 | 在线你懂 | 国产亚洲精品久久久久久久久久 | 五月丁色| 婷婷日日 | 国产中文a | 欧美另类网站 | 91视频-88av | 91黄色免费看 | av怡红院| 久久久av电影 | 黄色在线看网站 | 国产亚洲午夜高清国产拍精品 | 美女一二三区 | 狠狠干夜夜操天天爽 | 久久无码av一区二区三区电影网 | 久久国内视频 | av大全在线观看 | 亚洲日本va午夜在线影院 | 天天干天天操天天射 | 日韩有色| 成人在线网站观看 | 久久久久久久国产精品 | 中文字幕在线国产 | 狠狠躁日日躁夜夜躁av | 久久精品国亚洲 | 久久久久久久久久影视 | 欧美日韩视频观看 | 97韩国电影| 91夜夜夜| 国产成人性色生活片 | 久久99精品国产 | 99久久综合狠狠综合久久 | 韩国av免费在线 | 久久综合狠狠综合久久综合88 | 91中文字幕在线观看 | 色com网| 成年人免费在线观看网站 | 丁香av| 片黄色毛片黄色毛片 | 激情开心 | 亚洲一区二区观看 | 国产手机在线观看视频 | 97在线影院 | 久久精品视频国产 | 免费三级大片 | 国产精品久久久毛片 | 久久这里有 | 日韩电影在线看 | a亚洲视频| 92精品国产成人观看免费 | 国产午夜麻豆影院在线观看 | 午夜av影院 | 免费色视频 | 美国人与动物xxxx | 手机av网站 | 日本一区二区高清不卡 | 久久综合九色欧美综合狠狠 | 欧美精品中文在线免费观看 | 欧美日韩二区三区 | 国产在线观看二区 | 九九99视频| 国产精品日韩在线 | 精品久久久影院 | 99久久99久久精品 | 日韩午夜在线 | 一级黄色片毛片 | 日韩在线 一区二区 | 婷婷中文字幕 | 91成人午夜 | 亚洲三级影院 | 日韩欧美国产成人 | 韩日成人av | 久久黄色网址 | 91网页版在线观看 | www.神马久久 | 丁香六月婷婷激情 | 一级免费黄色 | 91丨九色丨91啦蝌蚪老版 | 欧美日韩免费在线视频 | 麻豆传媒视频在线 | 久久精品站 | 夜夜操天天干, | 中文字幕国产精品一区二区 | 在线视频 国产 日韩 | 日韩精品视频在线免费观看 | 一区 二区电影免费在线观看 | 欧美午夜寂寞影院 | 99亚洲天堂 | 操久久免费视频 | 亚洲精品国产精品国 | 日韩精品无 | 精品在线观看免费 | 国产精品白浆视频 | 伊人激情综合 | 手机看片国产 | 国产精品免费看久久久8精臀av | 在线观看国产亚洲 | 在线观看一级视频 | 亚洲高清色综合 | 久久久色 | 日本精品一区二区 | 久久在线一区 | 天天鲁天天干天天射 | 日韩欧美综合精品 | www.黄色在线 | 婷婷色综| 日韩黄色一级电影 | 久久男人免费视频 | 国产午夜精品一区二区三区在线观看 | 九九九九热精品免费视频点播观看 | 亚洲精品黄色 | 99久久婷婷国产精品综合 | 91九色丨porny丨丰满6 | 亚洲成人av片| 在线视频久久 | 美女视频久久久 | 91丨精品丨蝌蚪丨白丝jk | 毛片在线播放网址 | 国产精品v欧美精品 | 日韩精品一区二区三区水蜜桃 | 成 人 黄 色 视频免费播放 | 高清不卡毛片 | 国产美女被啪进深处喷白浆视频 | 欧美综合久久久 | 蜜臀久久99精品久久久久久网站 | 日韩激情视频在线 | 毛片网站在线看 | 久久天天操| 操高跟美女 | 激情五月播播久久久精品 | 成人久久毛片 | 国产黄色片久久久 | 亚洲激情在线视频 | 国产一卡久久电影永久 | 中文字幕a在线 | 久久综合色8888 | 涩涩色亚洲一区 | 国内毛片毛片 | 久久国产精品久久精品 | 丁香婷婷色综合亚洲电影 | 色综合天天综合 | 精品国产乱码久久久久久浪潮 | 欧美男男激情videos | 91视频啊啊啊 | 男女靠逼app | 日本特黄一级 | 国产99色| 69av免费视频 | 亚洲女人天堂成人av在线 | 在线观看中文字幕网站 | 精品国产网址 | 国产精品女同一区二区三区久久夜 | 亚洲精品久 | 亚洲一区精品人人爽人人躁 | 国产精品久久久久久久久久久久午 | av大片免费| 91精品视屏 | 欧美va天堂va视频va在线 | 婷婷丁香国产 | 成人视屏免费看 | 久久99热久久99精品 | 奇米777777| 免费a v观看 | 日韩欧美一区二区三区视频 | 欧美精品中文 | 欧美-第1页-屁屁影院 | 日本免费一二三区 | 免费av观看网站 | 成人黄色片在线播放 | 久久久久久久久久久久国产精品 | 亚洲成人一区 | 久久精品亚洲一区二区三区观看模式 | 五月丁色 | 91av视频在线观看 | 国产一级电影在线 | 国产日本在线播放 | 一区二区三区在线影院 | 狠狠色丁香久久婷婷综 | 久久99国产综合精品 | 欧洲色综合 | 伊人狠狠 | 国产日韩av在线 | 中国一级片视频 | 亚洲视频在线观看 | 狠狠干免费 | 欧美一区二区三区在线播放 | 免费在线色视频 | 色婷婷欧美| 中文字幕一区二区三区在线播放 | 美女搞黄国产视频网站 | 精品国产a | 亚洲欧美日韩精品久久久 | 国产裸体视频网站 | 在线观看成人一级片 | 亚洲精选国产 | 96亚洲精品久久久蜜桃 | 成年人免费看片 | 亚州精品一二三区 | 99视频精品全国免费 | 91精品国产乱码久久桃 | 欧美亚洲成人免费 | 日韩亚洲欧美中文字幕 | 久久一及片 | 黄av免费 | 久草视频在线播放 | 国产v视频 | 免费在线观看日韩视频 | 最近最新中文字幕视频 | 久久久免费国产 | 色一色在线| 欧美日韩国产三级 | 91激情在线视频 | 中文字幕在线视频免费播放 | 99久热在线精品视频成人一区 | 狠狠色伊人亚洲综合网站野外 | 成人a免费视频 | 免费麻豆网站 | 久久国产成人午夜av影院宅 | 国内视频 | 国产精品国内免费一区二区三区 | 久久8精品| 久久激情小说 | 91桃色免费视频 | 国产小视频精品 | 亚洲波多野结衣 | 久久成人资源 | 黄色福利视频网站 | 亚洲精品国偷自产在线91正片 | 国产视频资源在线观看 | 91激情视频在线观看 | 国产黄色免费看 | 国产精品激情 | 激情婷婷 | 欧美精品少妇xxxxx喷水 | 久久伦理网 | 91视频最新网址 | 国产精品99久久久久久小说 | 欧美aaa一级 | 超碰97中文 | 天堂av在线| 99亚洲视频 | 免费视频网 | 91成人在线观看喷潮 | www.888av| 久久国产亚洲视频 | 中文国产成人精品久久一 | 精品国产一区二区三区噜噜噜 | 粉嫩一二三区 | 毛片精品免费在线观看 | 婷婷丁香激情 | www.com.日本一级 | 夜夜婷婷| 人人干人人草 | 久久黄色网页 | 色网免费观看 | 国产91国语对白在线 | 99久久婷婷国产综合精品 | 久草91视频 | 亚洲视频在线观看 | 日本视频久久久 | 国产在线免费 | 日本一区二区免费在线观看 | 四虎影视8848dvd | 免费观看9x视频网站在线观看 | 96国产在线| 中文字幕高清 | 97超碰人人澡 | 日日干天天爽 | 国产成人久久av免费高清密臂 | 91最新视频在线观看 | 天天干天天拍天天操天天拍 | 日本免费一二三区 | 日韩精品一区二区三区在线视频 | 一区二区视频播放 | 日韩免费一区二区三区 | 色99视频 | 波多野结衣在线视频免费观看 | 国产精品美女999 | 久久伊人精品一区二区三区 | 午夜精品视频在线 | 亚洲免费在线观看视频 | 毛片激情永久免费 | 伊人官网 | 香蕉影视| 人人干人人上 | 日韩av片无码一区二区不卡电影 | 国产黄色免费在线观看 | 久久久免费精品视频 | 91视频啪 | 91自拍91| 男女激情麻豆 | 欧洲精品久久久久毛片完整版 | 亚洲精品三级 | 精品久久在线 | 在线看片中文字幕 | 日韩成人免费在线观看 | av高清免费 | 高清有码中文字幕 | 在线观看完整版 | 国产精品电影在线 | 亚洲欧洲久久久 | 在线 国产一区 | a天堂一码二码专区 | 超碰最新网址 | 欧美日韩国产在线观看 | 亚洲精品美女久久久 | 黄污在线看 | 日韩免费在线观看视频 | 韩国av一区 | 九九久久影视 | 久久久久久久久久久久亚洲 | 人人插人人草 | 亚洲 欧美日韩 国产 中文 | av中文字幕网站 | 天天干天天摸天天操 | 日本精品一区二区三区在线播放视频 | 国产精品亚| 激情五月***国产精品 | 九九热在线观看视频 | 午夜影视剧场 | 久久久精品福利视频 | 三级在线视频播放 | 色婷婷电影网 | 久久精品这里都是精品 | 国产精品精品久久久 | 久久影视一区二区 | 亚洲三级av | 日韩系列| 国产精品欧美久久久久久 | 国内精品在线观看视频 | 97**国产露脸精品国产 | 国产精品一区二区中文字幕 | 久久国产精品精品国产色婷婷 | 国产精品区免费视频 | 亚洲,国产成人av | 天天操夜夜逼 | 夜夜视频| 在线播放av网址 | 日日碰狠狠添天天爽超碰97久久 | 久久久999精品视频 国产美女免费观看 | 成人a视频在线观看 | 亚洲精品成人 | 国产一二区在线观看 | 亚洲精品视频在线观看免费 | 久草99| 国产不卡免费av | 日韩精品不卡在线观看 | 久久国产精品一区二区三区四区 | 日韩精品五月天 | 欧美一区二区三区激情视频 | 黄色a三级 | 欧美日本一区 | 亚洲午夜精品一区 | www视频在线免费观看 | 天天操天天射天天插 | 国产精品亚洲片夜色在线 | 日韩av图片 | 最近2019中文免费高清视频观看www99 | 9999激情 | 日韩电影中文 | 久久综合九色综合久99 | 婷婷免费在线视频 | 啪啪动态视频 | 亚洲久草在线视频 | 国产免费观看久久黄 | 日韩福利在线观看 | 亚洲一区二区视频在线 | 日韩在线电影观看 | 中文字幕一区二区三区视频 | 少妇bbr搡bbb搡bbb | 久久只精品99品免费久23小说 | 欧美日韩另类在线 | 国产成人三级三级三级97 | 天天操天天色天天 | 西西4444www大胆视频 | 一二三四精品 | 久久中文字幕视频 | 欧洲精品久久久久毛片完整版 | 爱射综合 | 免费视频久久久 | www.夜夜骑.com | 五月婷婷激情综合网 | 色橹橹欧美在线观看视频高清 | 岛国片在线 | 日韩精品电影在线播放 | 国产精品大尺度 | 婷婷精品 | 91精品在线观看视频 | 久精品视频 | 欧美日韩精品免费观看 | 久久久久亚洲精品中文字幕 | 在线观看精品视频 | 国内精品久久久久影院一蜜桃 | 亚洲免费不卡 | 精品久久一 | 日韩精品在线播放 | 少妇按摩av | 日韩二三区 | 精品一区二区在线播放 | 激情av在线资源 | 免费网站看av片 | 毛片随便看 | 91黄视频在线观看 | 精品亚洲免a | 日本一区二区免费在线观看 | 免费无遮挡动漫网站 | 国产精品手机看片 | 2018好看的中文在线观看 | 成人免费视频在线观看 | 成人av在线直播 | 欧美日本中文字幕 | 国产群p视频 | 国产成年人av | 九九免费视频 | 干狠狠 | 黄色特一级片 | 亚洲精品免费在线播放 | 亚洲欧美日韩在线看 | 国产精品成人一区 | 久久成人国产精品免费软件 | 岛国精品一区二区 | 婷婷深爱网 | 天天操操操操操操 | 麻豆传媒视频在线播放 | 日韩免费在线观看网站 | 国产精品国产三级国产aⅴ入口 | 中文字幕传媒 | 91av福利视频 | 国产精品成人a免费观看 | 激情久久久久 | 成人影片在线播放 | 在线观看视频精品 | 久久精品久久久久电影 | 日韩综合一区二区三区 | 国产午夜精品免费一区二区三区视频 | 成年人在线电影 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 亚洲黄色片一级 | 丁香在线观看完整电影视频 | 国产高清免费av | 92国产精品久久久久首页 | 中文字幕日韩精品有码视频 | 亚洲精品在线视频 | 狠狠的操你 | 国产91精品看黄网站在线观看动漫 | 中文字幕有码在线观看 | 99精品视频在线 | 国产成人黄色在线 | 久色小说| 日韩在线视频国产 | 国产麻豆传媒 | 久久在线免费观看视频 | 亚洲国产99| 日韩二级毛片 | 狠狠狠狠狠狠狠狠干 | 国产高潮久久 | 亚洲精品456在线播放第一页 | 日韩精品视频在线观看网址 | 黄色免费网战 | 青青草国产精品视频 | 天天操网 | 成人aaa毛片 | 黄网站免费久久 | 中文字幕在线免费看线人 | 午夜久久精品 | 亚洲精品国偷拍自产在线观看 | 中文字幕在线观看免费高清完整版 | 免费裸体视频网 | 久久综合之合合综合久久 | 激情五月婷婷激情 | 久久久久久久久久久电影 | 日韩字幕 | 国产麻豆精品免费视频 | 999国内精品永久免费视频 | 国产精品wwwwww | 日韩精品免费在线播放 | 久久久精品福利视频 | 亚洲在线不卡 | 日日操天天操夜夜操 | 国产高清无av久久 | 在线黄色国产 | 中文字幕电影一区 | 日韩精品久久久免费观看夜色 | 久久久久国产成人精品亚洲午夜 | 开心激情五月婷婷 | 中文字幕不卡在线88 | 日韩欧美视频在线观看免费 | 天天综合网天天 | 波多野结衣电影一区 | 欧美日韩伦理一区 | 四虎在线永久免费观看 | 国产高清av在线播放 | 国产精品一区二区免费看 | 懂色av一区二区三区蜜臀 | 久草视频中文在线 | 麻花传媒mv免费观看 | 天天色棕合合合合合合 | 999久久久 | 精品一区电影国产 | www日韩在线观看 | av在线影片 | 96亚洲精品久久久蜜桃 | 天堂av高清 | 91麻豆精品一区二区三区 | 日本黄色大片免费看 | www成人精品 | 超级碰碰碰免费视频 | 91网址在线| 久久精品国产精品亚洲 | 成人在线观看av | 亚洲精品福利视频 | 国产精品精品视频 | 日韩精品一区二区三区在线播放 | 天天玩夜夜操 | 91精品久久久久久综合乱菊 | 久久久午夜精品理论片中文字幕 | 最新中文字幕视频 | 色综合天天色综合 | 91av电影 | 片黄色毛片黄色毛片 | 免费看黄的 | 国产精品ⅴa有声小说 | 91视频 - v11av | 国产精品一区二区免费 | 久久久人人爽 | 人人草人人草 | 亚洲第一色 | 91精品国产亚洲 | 丝袜美腿在线视频 | 色综合久久天天 | 一区二区三区在线播放 | 日日婷婷夜日日天干 | 久久伊人热 | 精品极品在线 | 人人插人人做 | 成人影片在线播放 | 亚洲国产电影在线观看 | 国产日产精品一区二区三区四区 | 91亚洲视频在线观看 | 天天干夜夜爽 | av在线在线 | 99久久久久| 国产99在线播放 | 久久精国产 | 久久久久久99精品 | 久久久久国产a免费观看rela | 99精品欧美一区二区三区黑人哦 | 麻豆视频免费入口 | 欧美日本不卡视频 | 视频在线观看入口黄最新永久免费国产 | 色综合色综合久久综合频道88 | 中文视频一区二区 | 久久av免费电影 | 一级免费看| 国产精品久久久久久久久久久久久久 | 色av男人的天堂免费在线 | 久久久久久久久久久久av | www在线观看国产 | 四虎永久免费在线观看 | 国产91影院 | 日韩精品一区在线观看 | 夜夜嗨av色一区二区不卡 | 国产亚洲资源 | 99精品视频99 | 久久精品在线 | 国产一区高清在线观看 | 免费观看高清 | 国产系列 在线观看 | 婷婷久月 | 色国产视频 | 久久国产剧场电影 | 成人影视免费 | 国产自产在线视频 | 中文字幕黄色 | 国内精品久久久久影院优 | 亚洲美女精品视频 | 日韩美女黄色片 | 干干日日| 久久av免费| 最新国产精品拍自在线播放 | 国产一二三四在线视频 | 超级碰碰碰视频 | 日韩色一区二区三区 | 日本中文字幕在线免费观看 | 黄色免费观看 | 国产91在线看 | 狠狠精品 | 色先锋av资源中文字幕 | 9免费视频| 日日夜夜婷婷 | 免费美女久久99 | 97在线观看视频 | 欧美国产精品久久久久久免费 | 国产精品区免费视频 | 久久超 | 免费大片av | 午夜国产福利在线观看 | www.天天综合 | 免费不卡中文字幕视频 | 欧美日韩成人一区 | 国产免费一区二区三区最新6 | 福利一区二区三区四区 | 亚洲mv大片欧洲mv大片免费 | 在线观看91久久久久久 | 激情综合色综合久久综合 | 日韩在线观看第一页 | 成人免费观看网址 | 精品国产乱码一区二 | 久久视频网址 | 亚洲高清在线观看视频 | 欧美日韩色婷婷 | 久久你懂的 | 青青色影院 | 欧美日韩在线视频观看 | 久久久资源网 | 91精品免费看 | 国产福利一区在线观看 | 日韩激情免费视频 | 亚洲国产精品久久久久久 | 中文字幕在线免费观看 | 国产精品久久久久亚洲影视 | 久久www免费人成看片高清 | 男女拍拍免费视频 | 久久99精品久久久久久秒播蜜臀 | 中文字幕在线观看一区二区三区 | 色噜噜在线观看 | 国产资源免费在线观看 | 69国产盗摄一区二区三区五区 | 亚洲精品国精品久久99热 | 激情综合五月婷婷 | 五月婷婷中文网 | 一区二区视 | 91爱爱免费观看 | 九九综合久久 | 青青射| 亚洲精品久久久久久国 | 久久高视频 | 日本最新中文字幕 | 久久精品视频在线观看 | 在线观看国产永久免费视频 | 亚洲欧美精品一区 | 欧美在线观看小视频 | 久久久国产成人 | 欧美另类高潮 | 日韩av偷拍| 亚洲国产中文字幕在线观看 | 一级c片| 久久免费av | 最近久乱中文字幕 | 国内精品视频一区二区三区八戒 | 欧美黑吊大战白妞欧美 | 国产98色在线 | 日韩 | 黄色av网站在线观看免费 | 蜜臀av夜夜澡人人爽人人 | 91看片看淫黄大片 | a天堂免费 | 久久精品一二区 | 91麻豆产精品久久久久久 | 丁香视频免费观看 | 日日干夜夜操视频 | 国内毛片毛片 | 亚洲视频一区二区三区在线观看 | 玖玖视频免费在线 | 激情综合色综合久久综合 | 麻豆视频在线观看免费 | 国产精品高清免费在线观看 | 黄色小网站在线 | 欧美在线视频一区二区三区 | 国产高清视频色在线www | 黄色毛片视频 | av免费看在线 | 国产小视频福利在线 | 久久久影院一区二区三区 | 伊人国产在线观看 | 国产麻豆精品免费视频 | 亚洲国产中文字幕 | 久久久久亚洲精品 | 日本电影黄色 | 国产成人资源 | 欧美色婷 | 国产精品欧美激情在线观看 | 久久黄色免费 | 国产精品毛片一区二区在线 | 久久久久久久久久久影视 | 最新99热| 9在线观看免费高清完整版在线观看明 | 在线一区观看 | 午夜精品导航 | a国产精品 | 久久成人国产 | 97视频免费观看 | 91视频在线免费看 | 国产一区精品在线 | 精品国产一区二区三区不卡 | 99精品国产99久久久久久97 | 国产黄色免费观看 | 成人在线观看日韩 | 97色资源 | 最近中文字幕完整高清 | 国产精品自产拍在线观看蜜 | 国产精品久久久久久999 | 欧美怡红院 | 国产精品久久久久久久久久新婚 | 亚洲无吗av | 狠狠躁18三区二区一区ai明星 | 日日草夜夜操 | 日日射av | 国产日韩欧美在线播放 | 色吊丝在线永久观看最新版本 | 成人h视频 | 亚洲欧美国产视频 | 中文字幕在线播放第一页 | 日韩特级黄色片 | 偷拍福利视频一区二区三区 | 毛片a级片 | 美女禁18| 久久精品欧美一区二区三区麻豆 | 99精品久久精品一区二区 | 亚洲欧美日韩国产一区二区 | 天天射,天天干 | 成人黄色大片 | 国偷自产中文字幕亚洲手机在线 | 国产一级免费在线观看 | 免费在线观看av不卡 | 日韩国产精品一区 | 玖玖在线精品 | 亚洲精品中文字幕视频 | 国产精品久久久久久欧美 | 亚洲免费小视频 | 中文字幕在线观看第二页 | 免费观看v片在线观看 | 天天爽夜夜爽人人爽一区二区 | 亚洲精品色婷婷 | 精品久久久久久久久久国产 | 99精品国产一区二区三区麻豆 | 正在播放日韩 | 国产免费中文字幕 | 在线成人免费电影 | 欧美激情视频一区二区三区 | 国产专区一 | 欧美十八 | 中文字幕 国产精品 | 久久经典国产视频 | 一区 二区 精品 | 国产精品久久伊人 | 国产最新视频在线观看 | 狠狠艹夜夜干 | 午夜.dj高清免费观看视频 | 中文字幕视频三区 | 黄色一级动作片 | 久久久国产精品久久久 | 日韩三级视频在线看 | 黄av免费 | 99爱国产精品 | 国产精品成人免费精品自在线观看 | 午夜私人影院 | 99精品国产一区二区三区麻豆 | 中文字幕婷婷 | 国产精品一区二区久久精品 | 色无五月 | 久久久综合精品 | 国产91小视频 | 亚洲成 人精品 | 国产精品女主播一区二区三区 | 97av超碰 | 国语麻豆 | 99国产一区| 国产成人三级在线 | 成人免费在线视频观看 | 国产精品精品视频 | 在线观看国产高清视频 | 婷婷久操 | 欧美精品久久久久久久久老牛影院 | 久久久久久久久久久久久9999 | 国模精品在线 | 在线中文字幕一区二区 | 国产日韩精品久久 | 91成人精品在线 | 天天插天天操天天干 | 亚洲国产精品va在线 | 国产69精品久久久久久久久久 | 91成人破解版 | 欧美日韩国产一区二 |