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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C和C++混合编程(__cplusplus 与 external c 的使用)

發(fā)布時(shí)間:2023/12/20 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C和C++混合编程(__cplusplus 与 external c 的使用) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一種理解
比如說你用C++開發(fā)了一個(gè)DLL庫,為了能夠讓C語言也能夠調(diào)用你的DLL輸出(Export)的函數(shù),你需要用extern "C"來強(qiáng)制編譯器不要修改你的

函數(shù)名。

通常,在C語言的頭文件中經(jīng)常可以看到類似下面這種形式的代碼:

#ifdef __cplusplus

extern "C" {

#endif

/**** some declaration or so *****/

#ifdef __cplusplus

? }

#endif /* end of __cplusplus */

那么,這種寫法什么用呢?實(shí)際上,這是為了讓CPP能夠與C接口而采用的一種語法形式。之所以采用這種方式,是因?yàn)閮煞N語言之間的一些差

異所導(dǎo)致的。由于CPP支持多態(tài)性,也就是具有相同函數(shù)名的函數(shù)可以完成不同的功能,CPP通常是通過參數(shù)區(qū)分具體調(diào)用的是哪一個(gè)函數(shù)。在

編譯的時(shí)候,CPP編譯器會(huì)將參數(shù)類型和函數(shù)名連接在一起,于是在程序編譯成為目標(biāo)文件以后,CPP編譯器可以直接根據(jù)目標(biāo)文件中的符號(hào)名

將多個(gè)目標(biāo)文件連接成一個(gè)目標(biāo)文件或者可執(zhí)行文件。但是在C語言中,由于完全沒有多態(tài)性的概念,C編譯器在編譯時(shí)除了會(huì)在函數(shù)名前面添

加一個(gè)下劃線之外,什么也不會(huì)做(至少很多編譯器都是這樣干的)。由于這種的原因,當(dāng)采用CPP與C混合編程的時(shí)候,就可能會(huì)出問題。假

設(shè)在某一個(gè)頭文件中定義了這樣一個(gè)函數(shù):

int foo(int a, int b);

而這個(gè)函數(shù)的實(shí)現(xiàn)位于一個(gè).c文件中,同時(shí),在.cpp文件中調(diào)用了這個(gè)函數(shù)。那么,當(dāng)CPP編譯器編譯這個(gè)函數(shù)的時(shí)候,就有可能會(huì)把這個(gè)函數(shù)

名改成_fooii,這里的ii表示函數(shù)的第一參數(shù)和第二參數(shù)都是整型。而C編譯器卻有可能將這個(gè)函數(shù)名編譯成_foo。也就是說,在CPP編譯器得

到的目標(biāo)文件中,foo()函數(shù)是由_fooii符號(hào)來引用的,而在C編譯器生成的目標(biāo)文件中,foo()函數(shù)是由_foo指代的。但連接器工作的時(shí)候,它

可不管上層采用的是什么語言,它只認(rèn)目標(biāo)文件中的符號(hào)。于是,連接器將會(huì)發(fā)現(xiàn)在.cpp中調(diào)用了foo()函數(shù),但是在其它的目標(biāo)文件中卻找不

到_fooii這個(gè)符號(hào),于是提示連接過程出錯(cuò)。extern "C" {}這種語法形式就是用來解決這個(gè)問題的。本文將以示例對(duì)這個(gè)問題進(jìn)行說明。

首先假設(shè)有下面這樣三個(gè)文件:

/* file: test_extern_c.h */

#ifndef __TEST_EXTERN_C_H__

#define __TEST_EXTERN_C_H__

#ifdef __cplusplus

extern "C" {

#endif

/*

* this is a test function, which calculate

* the multiply of a and b.

*/

extern int ThisIsTest(int a, int b);

#ifdef __cplusplus

? }

#endif /* end of __cplusplus */

#endif

在這個(gè)頭文件中只定義了一個(gè)函數(shù),ThisIsTest()。這個(gè)函數(shù)被定義為一個(gè)外部函數(shù),可以被包括到其它程序文件中。假設(shè)ThisIsTest()函數(shù)

的實(shí)現(xiàn)位于test_extern_c.c文件中:

/* test_extern_c.c */

#include "test_extern_c.h"

int ThisIsTest(int a, int b)

{

? return (a + b);

}

可以看到,ThisIsTest()函數(shù)的實(shí)現(xiàn)非常簡(jiǎn)單,就是將兩個(gè)參數(shù)的相加結(jié)果返回而已。現(xiàn)在,假設(shè)要從CPP中調(diào)用ThisIsTest()函數(shù):

/* main.cpp */

#include "test_extern_c.h"

#include <stdio.h>

#include <stdlib.h>

class FOO {

? public:

? int bar(int a, int b)

??? {

??????? printf("result=%i/n", ThisIsTest(a, b));

??? }

};

int main(int argc, char **argv)

{

? int a = atoi(argv[1]);

? int b = atoi(argv[2]);

? FOO *foo = new FOO();

? foo->bar(a, b);

? return(0);

}

在這個(gè)CPP源文件中,定義了一個(gè)簡(jiǎn)單的類FOO,在其成員函數(shù)bar()中調(diào)用了ThisIsTest()函數(shù)。下面看一下如果采用gcc編譯test_extern_c.c

,而采用g++編譯main.cpp并與test_extern_c.o連接會(huì)發(fā)生什么情況:

[cyc@cyc src]$ gcc -c test_extern_c.c

[cyc@cyc src]$ g++ main.cpp test_extern_c.o

[cyc@cyc src]$ ./a.out 4 5??????????

result=9

可以看到,程序沒有任何異常,完全按照預(yù)期的方式工作。那么,如果將test_extern_c.h中的extern "C" {}所在的那幾行注釋掉會(huì)怎樣呢?

注釋后的test_extern_c.h文件內(nèi)容如下:

/* test_extern_c.h */

#ifndef __TEST_EXTERN_C_H__

#define __TEST_EXTERN_C_H__

//#ifdef?? __cplusplus

//extern "C" {

//#endif

/*

/* this is a test function, which calculate

* the multiply of a and b.

*/

extern int ThisIsTest(int a, int b);

//#ifdef?? __cplusplus

// }

//#endif?? /* end of __cplusplus */

#endif

之外,其它文件不做任何的改變,仍然采用同樣的方式編譯test_extern_c.c和main.cpp文件:

[cyc@cyc src]$ gcc -c test_extern_c.c

[cyc@cyc src]$ g++ main.cpp test_extern_c.o

/tmp/cca4EtJJ.o(.gnu.linkonce.t._ZN3FOO3barEii+0x10): In function `FOO::bar(int, int)':

: undefined reference to `ThisIsTest(int, int)'

collect2: ld returned 1 exit status

在編譯main.cpp的時(shí)候就會(huì)出錯(cuò),連接器ld提示找不到對(duì)函數(shù)ThisIsTest()的引用。

為了更清楚地說明問題的原因,我們采用下面的方式先把目標(biāo)文件編譯出來,然后看目標(biāo)文件中到底都有些什么符號(hào):

[cyc@cyc src]$ gcc -c test_extern_c.c??

[cyc@cyc src]$ objdump -t test_extern_c.o

test_extern_c.o:?? file format elf32-i386

SYMBOL TABLE:

00000000 l?? df *ABS* 00000000 test_extern_c.c

00000000 l?? d .text 00000000

00000000 l?? d .data 00000000

00000000 l?? d .bss?? 00000000

00000000 l?? d .comment???? 00000000

00000000 g?? F .text 0000000b ThisIsTest

[cyc@cyc src]$ g++ -c main.cpp??????

[cyc@cyc src]$ objdump -t main.o??????

main.o:?? file format elf32-i386

MYMBOL TABLE:

00000000 l?? df *ABS* 00000000 main.cpp

00000000 l?? d .text 00000000

00000000 l?? d .data 00000000

00000000 l?? d .bss?? 00000000

00000000 l?? d .rodata???? 00000000

00000000 l?? d .gnu.linkonce.t._ZN3FOO3barEii 00000000

00000000 l?? d .eh_frame???? 00000000

00000000 l?? d .comment???? 00000000

00000000 g?? F .text 00000081 main

00000000?????? *UND* 00000000 atoi

00000000?????? *UND* 00000000 _Znwj

00000000?????? *UND* 00000000 _ZdlPv

00000000 w?? F .gnu.linkonce.t._ZN3FOO3barEii 00000027 _ZN3FOO3barEii

00000000?????? *UND* 00000000 _Z10ThisIsTestii

00000000?????? *UND* 00000000 printf

00000000?????? *UND* 00000000 __gxx_personality_v0

可以看到,采用gcc編譯了test_extern_c.c之后,在其目標(biāo)文件test_extern_c.o中的有一個(gè)ThisIsTest符號(hào),這個(gè)符號(hào)就是源文件中定義的

ThisIsTest()函數(shù)了。而在采用g++編譯了main.cpp之后,在其目標(biāo)文件main.o中有一個(gè)_Z10ThisIsTestii符號(hào),這個(gè)就是經(jīng)過g++編譯器“粉

碎”過后的函數(shù)名。其最后的兩個(gè)字符i就表示第一參數(shù)和第二參數(shù)都是整型。而為什么要加一個(gè)前綴_Z10我并不清楚,但這里并不影響我們的

討論,因此不去管它。顯然,這就是原因的所在,其原理在本文開頭已作了說明。

那么,為什么采用了extern "C" {}形式就不會(huì)有這個(gè)問題呢,我們就來看一下當(dāng)test_extern_c.h采用extern "C" {}的形式時(shí)編譯出來的目標(biāo)

文件中又有哪些符號(hào):

[cyc@cyc src]$ gcc -c test_extern_c.c

[cyc@cyc src]$ objdump -t test_extern_c.o

test_extern_c.o:?? file format elf32-i386

SYMBOL TABLE:

00000000 l?? df *ABS* 00000000 test_extern_c.c

00000000 l?? d .text 00000000

00000000 l?? d .data 00000000

00000000 l?? d .bss?? 00000000

00000000 l?? d .comment???? 00000000

00000000 g?? F .text 0000000b ThisIsTest

[cyc@cyc src]$ g++ -c main.cpp

[cyc@cyc src]$ objdump -t main.o

main.o:?? file format elf32-i386

SYMBOL TABLE:

00000000 l?? df *ABS* 00000000 main.cpp

00000000 l?? d .text 00000000

00000000 l?? d .data 00000000

00000000 l?? d .bss?? 00000000

00000000 l?? d .rodata???? 00000000

00000000 l?? d .gnu.linkonce.t._ZN3FOO3barEii 00000000

00000000 l?? d .eh_frame???? 00000000

00000000 l?? d .comment???? 00000000

00000000 g?? F .text 00000081 main

00000000?????? *UND* 00000000 atoi

00000000?????? *UND* 00000000 _Znwj

00000000?????? *UND* 00000000 _ZdlPv

00000000 w?? F .gnu.linkonce.t._ZN3FOO3barEii 00000027 _ZN3FOO3barEii

00000000?????? *UND* 00000000 ThisIsTest

00000000?????? *UND* 00000000 printf

00000000?????? *UND* 00000000 __gxx_personality_v0

注意到這里和前面有什么不同沒有,可以看到,在兩個(gè)目標(biāo)文件中,都有一個(gè)符號(hào)ThisIsTest,這個(gè)符號(hào)引用的就是ThisIsTest()函數(shù)了。顯

然,此時(shí)在兩個(gè)目標(biāo)文件中都存在同樣的ThisIsTest符號(hào),因此認(rèn)為它們引用的實(shí)際上同一個(gè)函數(shù),于是就將兩個(gè)目標(biāo)文件連接在一起,凡是

出現(xiàn)程序代碼段中有ThisIsTest符號(hào)的地方都用ThisIsTest()函數(shù)的實(shí)際地址代替。另外,還可以看到,僅僅被extern "C" {}包圍起來的函數(shù)

采用這樣的目標(biāo)符號(hào)形式,對(duì)于main.cpp中的FOO類的成員函數(shù),在兩種編譯方式后的符號(hào)名都是經(jīng)過“粉碎”了的。

因此,綜合上面的分析,我們可以得出如下結(jié)論:采用extern "C" {} 這種形式的聲明,可以使得CPP與C之間的接口具有互通性,不會(huì)由于語

言內(nèi)部的機(jī)制導(dǎo)致連接目標(biāo)文件的時(shí)候出現(xiàn)錯(cuò)誤。需要說明的是,上面只是根據(jù)我的試驗(yàn)結(jié)果而得出的結(jié)論。由于對(duì)于CPP用得不是很多,了解

得也很少,因此對(duì)其內(nèi)部處理機(jī)制并不是很清楚,如果需要深入了解這個(gè)問題的細(xì)節(jié)請(qǐng)參考相關(guān)資料。

?

第二種理解
時(shí)常在cpp的代碼之中看到這樣的代碼:

#ifdef __cplusplus

extern "C" {

#endif

?

//一段代碼

?

#ifdef __cplusplus

}

#endif
?

  這樣的代碼到底是什么意思呢?首先,__cplusplus是cpp中的自定義宏,那么定義了這個(gè)宏的話表示這是一段cpp的代碼,也就是說,上面

的代碼的含義是:如果這是一段cpp的代碼,那么加入extern "C"{和}處理其中的代碼。

  要明白為何使用extern "C",還得從cpp中對(duì)函數(shù)的重載處理開始說起。在c++中,為了支持重載機(jī)制,在編譯生成的匯編碼中,要對(duì)函數(shù)

的名字進(jìn)行一些處理,加入比如函數(shù)的返回類型等等.而在C中,只是簡(jiǎn)單的函數(shù)名字而已,不會(huì)加入其他的信息.也就是說:C++和C對(duì)產(chǎn)生的函

數(shù)名字的處理是不一樣的.

  比如下面的一段簡(jiǎn)單的函數(shù),我們看看加入和不加入extern "C"產(chǎn)生的匯編代碼都有哪些變化:

int f(void)

{

return 1;

}
?

  在加入extern "C"的時(shí)候產(chǎn)生的匯編代碼是:

.file "test.cxx"

.text

.align 2

.globl _f

.def _f; .scl 2; .type 32; .endef

_f:

pushl %ebp

movl %esp, %ebp

movl $1, %eax

popl %ebp

ret
?

  但是不加入了extern "C"之后

.file "test.cxx"

.text

.align 2

.globl __Z1fv

.def __Z1fv; .scl 2; .type 32; .endef

__Z1fv:

pushl %ebp

movl %esp, %ebp

movl $1, %eax

popl %ebp

ret
?

  兩段匯編代碼同樣都是使用gcc -S命令產(chǎn)生的,所有的地方都是一樣的,唯獨(dú)是產(chǎn)生的函數(shù)名,一個(gè)是_f,一個(gè)是__Z1fv。

  明白了加入與不加入extern "C"之后對(duì)函數(shù)名稱產(chǎn)生的影響,我們繼續(xù)我們的討論:為什么需要使用extern "C"呢?C++之父在設(shè)計(jì)C++之時(shí)

,考慮到當(dāng)時(shí)已經(jīng)存在了大量的C代碼,為了支持原來的C代碼和已經(jīng)寫好C庫,需要在C++中盡可能的支持C,而extern "C"就是其中的一個(gè)策略

  試想這樣的情況:一個(gè)庫文件已經(jīng)用C寫好了而且運(yùn)行得很良好,這個(gè)時(shí)候我們需要使用這個(gè)庫文件,但是我們需要使用C++來寫這個(gè)新的代

碼。如果這個(gè)代碼使用的是C++的方式鏈接這個(gè)C庫文件的話,那么就會(huì)出現(xiàn)鏈接錯(cuò)誤.我們來看一段代碼:首先,我們使用C的處理方式來寫一個(gè)

函數(shù),也就是說假設(shè)這個(gè)函數(shù)當(dāng)時(shí)是用C寫成的:

//f1.c

extern "C"

{

void f1()

{

return;

}

}
?

  編譯命令是:gcc -c f1.c -o f1.o 產(chǎn)生了一個(gè)叫f1.o的庫文件。再寫一段代碼調(diào)用這個(gè)f1函數(shù):

// test.cxx

//這個(gè)extern表示f1函數(shù)在別的地方定義,這樣可以通過

//編譯,但是鏈接的時(shí)候還是需要

//鏈接上原來的庫文件.

extern void f1();

?

int main()

{

f1();

?

return 0;

}
?

  通過gcc -c test.cxx -o test.o 產(chǎn)生一個(gè)叫test.o的文件。然后,我們使用gcc test.o f1.o來鏈接兩個(gè)文件,可是出錯(cuò)了,錯(cuò)誤的提示

是:

test.o(.text + 0x1f):test.cxx: undefine reference to 'f1()'
?

  也就是說,在編譯test.cxx的時(shí)候編譯器是使用C++的方式來處理f1()函數(shù)的,但是實(shí)際上鏈接的庫文件卻是用C的方式來處理函數(shù)的,所

以就會(huì)出現(xiàn)鏈接過不去的錯(cuò)誤:因?yàn)殒溄悠髡也坏胶瘮?shù)。

  因此,為了在C++代碼中調(diào)用用C寫成的庫文件,就需要用extern "C"來告訴編譯器:這是一個(gè)用C寫成的庫文件,請(qǐng)用C的方式來鏈接它們。

  比如,現(xiàn)在我們有了一個(gè)C庫文件,它的頭文件是f.h,產(chǎn)生的lib文件是f.lib,那么我們?nèi)绻贑++中使用這個(gè)庫文件,我們需要這樣寫

:

extern "C"

{

#include "f.h"

}
?

  回到上面的問題,如果要改正鏈接錯(cuò)誤,我們需要這樣子改寫test.cxx:

extern "C"

{

extern void f1();

}

?

int main()

{

f1();

?

return 0;

}
?

重新編譯并且鏈接就可以過去了.

總結(jié)

C和C++對(duì)函數(shù)的處理方式是不同的.extern "C"是使C++能夠調(diào)用C寫作的庫文件的一個(gè)手段,如果要對(duì)編譯器提示使用C的方式來處理函數(shù)的話,那么就要使用extern "C"來說明。

總結(jié)

以上是生活随笔為你收集整理的C和C++混合编程(__cplusplus 与 external c 的使用)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

免费观看www7722午夜电影 | 欧美成人理伦片 | 色综合久久综合 | 91麻豆精品国产91久久久久久 | av3级在线 | 超碰在线资源 | 人人射人人澡 | 亚洲欧美日本国产 | 综合色在线观看 | 中文字幕在线久一本久 | 久久手机免费观看 | 91一区二区三区久久久久国产乱 | 操处女逼 | 欧日韩在线 | 欧美天天综合网 | 国精产品永久999 | 久久精彩视频 | 欧美一区视频 | 国产精品久久久久久久久久久久午 | 成人动漫视频在线 | 国产精品一区二区麻豆 | 日韩免费在线观看视频 | 可以免费看av| 九九视频免费观看视频精品 | 色婷婷国产| www.伊人网.com| 国产午夜在线观看视频 | 91精品国产九九九久久久亚洲 | 丝袜av一区| 五月婷综合 | 夜夜躁狠狠躁日日躁 | 日韩欧美网站 | 国产欧美中文字幕 | 欧美,日韩| 手机av电影在线 | 日本黄色黄网站 | 久久手机免费视频 | 五月婷婷综合在线视频 | 992tv成人免费看片 | 色视频 在线 | 欧美天堂久久 | 久久国产女人 | 成人a视频在线观看 | 91精品国产综合久久福利 | 国产精品美女久久久久久2018 | 99热都是精品 | 国产精品免费观看在线 | 国产中文字幕在线播放 | 亚洲成成品网站 | 天堂av影院 | 狠狠干,狠狠操 | 97在线看| 精品久久久亚洲 | 日韩免费电影在线观看 | 日韩av一区二区在线影视 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲最新视频在线播放 | 精品国内自产拍在线观看视频 | 日韩在线观看中文 | 精品福利视频在线观看 | av理论电影| 99在线免费观看 | 日韩三级在线 | 免费观看的黄色 | 久久草草热国产精品直播 | 韩国一区二区在线观看 | 国产精品女主播一区二区三区 | 一区二区三区免费在线观看视频 | 亚洲精品黄色片 | 国产糖心vlog在线观看 | 亚洲国产精品成人av | 91精品国产乱码久久桃 | 国产精品不卡在线播放 | 久草在线久草在线2 | 久久久精品国产一区二区三区 | 久久久久久久久久久久久久av | 色五月情| 国内精品视频在线 | 婷婷网在线| 国产精品久久视频 | 久久香蕉国产精品麻豆粉嫩av | 日韩视频精品在线 | 亚洲精品综合在线观看 | av不卡免费看 | 特级黄色视频毛片 | 日韩电影精品一区 | 久久精品视频在线观看免费 | 日韩精品久久久久久中文字幕8 | 黄色av免费在线 | 成人黄色大片在线免费观看 | 96av麻豆蜜桃一区二区 | 国产专区在线视频 | 国产在线视频一区二区 | 果冻av在线| 91在线中文字幕 | 欧美a级免费视频 | 成人免费视频观看 | 激情自拍av | av电影在线观看完整版一区二区 | 91看片淫黄大片在线播放 | 国产精品淫 | 国产拍揄自揄精品视频麻豆 | 日本中文字幕在线视频 | 欧洲精品视频一区 | 久久久综合香蕉尹人综合网 | 欧美日韩高清一区二区三区 | 奇米影视999 | 国产欧美精品xxxx另类 | 久久精品美女视频 | 91久久久久久久一区二区 | 91豆麻精品91久久久久久 | 狠狠干夜夜爱 | 中文字幕在线高清 | 国产成人1区 | 国产精品一区在线观看 | 麻豆传媒在线免费看 | 成人欧美一区二区三区黑人麻豆 | 久久国语露脸国产精品电影 | 国产男女免费完整视频 | 日韩在线观看av | 国产精品亚洲视频 | 超碰在线人人 | 中文字幕乱码电影 | 99久久精品免费视频 | 在线国产福利 | 欧美做受69 | 亚洲欧美激情精品一区二区 | 亚洲一区视频免费观看 | 亚洲a成人v | 99九九99九九九视频精品 | 99久热在线精品视频 | 国产亚洲激情视频在线 | av久久在线 | 国产精品成人一区二区 | 色婷婷免费视频 | 黄色成人毛片 | 久久好看免费视频 | 免费av的网站 | 91精品国产91 | 国产精品久久久久久久久久99 | 九九久久精品视频 | 少妇bbw搡bbbb搡bbbb | 人人爽爽人人 | 久久综合九色综合久久久精品综合 | 精品国精品自拍自在线 | 欧美一级片免费在线观看 | 午夜精品久久久久久中宇69 | 色婷婷久久一区二区 | 国产不卡免费视频 | 色偷偷网站视频 | 韩国三级av在线 | 91人人网 | 久久国产精品视频免费看 | 精品久久久久久久久中文字幕 | 国产成人在线免费观看 | 久久免费的精品国产v∧ | 国产精品 视频 | 丁香婷婷在线观看 | 成人国产亚洲 | 国产精品成人一区二区三区 | 久艹视频免费观看 | 五月婷婷深开心 | 三级av免费观看 | 国产精品免费久久久久 | 丁香激情综合久久伊人久久 | 免费高清影视 | 久久精品毛片 | 干狠狠| 亚洲韩国一区二区三区 | 国产一级片一区二区三区 | 四虎影视成人永久免费观看亚洲欧美 | av电影免费观看 | 国产精品久久久久9999 | 国产一区高清在线观看 | 色综合天天天天做夜夜夜夜做 | 日韩理论视频 | 欧美在线视频一区二区 | 亚洲无吗av | 色婷婷av国产精品 | 日韩美一区二区三区 | 91伊人影院 | 国产精品女同一区二区三区久久夜 | 在线电影av | 99久久精品无免国产免费 | www在线观看国产 | 国产高清 不卡 | 亚洲免费视频观看 | 国产精品成人一区二区三区吃奶 | 久久精品99北条麻妃 | 天天综合日 | av先锋中文字幕 | 成人av影院在线观看 | 国产成人av片 | 4hu视频| 免费又黄又爽 | 欧美日韩一区三区 | 91亚洲国产 | 国产精品免费一区二区三区在线观看 | 青春草视频在线播放 | 日本九九视频 | 99久久久久免费精品国产 | 国产精品日韩欧美 | 久久黄色网 | 一级成人免费视频 | 久久毛片网站 | 国产精品久久99精品毛片三a | 国产一区在线免费观看视频 | 亚洲一区美女视频在线观看免费 | 色资源网在线观看 | 久久超级碰视频 | 91高清免费观看 | 亚洲高清在线 | 婷婷.com| 欧美日韩中文视频 | 91大神免费视频 | 人人揉人人揉人人揉人人揉97 | 日韩在线免费播放 | 一区二区三区日韩视频在线观看 | 国产精品久久久久久久午夜片 | 五月婷社区 | 国产中的精品av小宝探花 | 国产一级在线视频 | 成年人视频在线免费播放 | 亚洲乱亚洲乱妇 | 91精品国产综合久久福利 | 天天曰视频| 久久精品日产第一区二区三区乱码 | 亚洲成a人片77777潘金莲 | 2023亚洲精品国偷拍自产在线 | 国产成人精品一区二区 | 久久久国产精品一区二区三区 | 日韩中文字幕在线 | 日批视频| 欧美精品在线观看 | 国产永久免费 | 亚洲综合欧美精品电影 | 99久久99久久精品国产片果冰 | 国产成人久久av977小说 | 色婷婷福利视频 | 久一久久| 日本免费久久高清视频 | 97国产精品一区二区 | 又爽又黄又无遮挡网站动态图 | 2018好看的中文在线观看 | 午夜影院一级 | 国产精品一区二区久久久久 | 久久99网站| av大片免费| 手机看片午夜 | 日韩在线观看第一页 | 成人黄色av免费在线观看 | 亚洲综合在线视频 | 色五月激情五月 | 欧美日韩一区二区在线观看 | 99热99| 夜夜躁日日躁狠狠久久av | 亚洲精品成人av在线 | 国产精品色在线 | 99免费精品视频 | 国产一区二区高清 | 91九色自拍 | 久久99国产精品自在自在app | 视频在线一区二区三区 | 日韩免费在线播放 | 蜜桃视频成人在线观看 | 69亚洲乱 | 亚洲精品免费看 | 在线观看日韩精品视频 | 91国内在线视频 | 在线观看中文字幕视频 | 久久精品—区二区三区 | 国产小视频免费在线观看 | 久久婷亚洲五月一区天天躁 | 国产精品v欧美精品v日韩 | 色欲综合视频天天天 | 在线a人片免费观看视频 | www.久久成人 | 992tv在线成人免费观看 | 国产精品日韩久久久久 | 超碰com| 精品视频免费 | 人人射人人插 | 99爱在线观看 | 中文字幕 国产视频 | 一区二区精品国产 | 97人人模人人爽人人少妇 | 97福利视频 | 色六月婷婷| 日韩1页 | 国产黄色大全 | 蜜臀精品久久久久久蜜臀 | 久久系列| 在线成人中文字幕 | 91视频 - 114av| 超碰日韩 | 久久久久99精品国产片 | 亚洲精品一区二区在线观看 | 成人动漫精品一区二区 | 亚洲天堂社区 | 成人av一区二区在线观看 | 欧美va天堂在线电影 | 综合天堂av久久久久久久 | 婷婷丁香六月天 | 亚洲 综合 激情 | 久久精品爱爱视频 | 久久这里只有精品1 | 日批在线看 | 伊人久久五月天 | 在线观看岛国 | 日韩av黄 | 97视频久久久 | 午夜黄色| 狠狠综合 | 天天弄天天操 | 国产精品二区在线观看 | 一区中文字幕在线观看 | 精品国产免费人成在线观看 | 91中文字幕网 | 久久看看 | 人人看黄色 | 国产色网 | www激情久久 | 国产一二三精品 | 国产1级毛片 | 玖玖国产精品视频 | 国产精品一区二区三区在线免费观看 | 日韩av中文字幕在线 | 久章草在线 | 91爱爱中文字幕 | 成人免费在线观看入口 | 国产资源精品在线观看 | 中文字幕精品一区久久久久 | 欧美性色综合网站 | 久久久午夜视频 | 成年人视频在线观看免费 | 日本免费久久高清视频 | 91视频一8mav | 国产91亚洲| 久久免费视频2 | 日韩区欠美精品av视频 | 91丨九色丨蝌蚪丨老版 | 97自拍超碰 | 婷婷www| 国产中文 | 天天色天天草天天射 | 国产免费嫩草影院 | 玖玖综合网| av电影在线不卡 | 久艹视频在线观看 | 一本色道久久精品 | 久久毛片网 | 色婷婷狠狠五月综合天色拍 | 狠狠久久综合 | bbb搡bbb爽爽爽 | 黄色视屏av | 一区二区国产精品 | 国产精品av久久久久久无 | 一级黄毛片 | 国产高清成人av | 精品国产一区二区三区久久久 | 精品一区二三区 | 亚洲区精品 | 久久av免费 | 成年人免费在线 | 久久一区二区三区国产精品 | 免费日韩 精品中文字幕视频在线 | 99久久这里有精品 | av电影中文字幕在线观看 | 国产精品 9999 | 久久亚洲精品电影 | 91人人插| 亚洲污视频 | 狠狠干 狠狠操 | 国产免费又黄又爽 | 久久久久久中文字幕 | 国产精品99久久久久久有的能看 | 日韩中文字幕在线不卡 | 婷婷国产v亚洲v欧美久久 | 91精品国产九九九久久久亚洲 | 天天干天天干天天操 | 日韩三级不卡 | 国产福利一区二区三区视频 | 久久99国产精品久久99 | 久久伊人精品一区二区三区 | 国产精品成人一区二区三区吃奶 | 激情丁香在线 | 91亚洲精品国偷拍自产在线观看 | 92精品国产成人观看免费 | 国产精品精品国产色婷婷 | 日韩精品一区二区在线观看 | 丁香六月久久综合狠狠色 | 久久伊人色综合 | 久久久观看| 久久综合国产伦精品免费 | 在线观看完整版 | 欧美一级性生活片 | 蜜臀av性久久久久av蜜臀妖精 | 天天综合网天天 | 91在线永久| www.com.黄| 亚洲欧美在线视频免费 | 日韩精品中文字幕久久臀 | 黄污网站在线观看 | 日韩av在线一区二区 | 久久一区二 | 成人三级网址 | 天天插天天射 | 美女视频黄免费 | 午夜 久久 tv | 国产 亚洲 欧美 在线 | 亚洲综合视频在线观看 | 在线中文字幕电影 | 在线国产一区二区三区 | 久久99精品久久久久蜜臀 | 99久久久国产精品免费观看 | 青草草在线视频 | 国产一区视频在线播放 | 五月婷婷激情五月 | 97色国产| 亚洲精品中文字幕在线 | 激情 婷婷 | 国产精品女人久久久久久 | 久久久2o19精品 | 国产日韩欧美视频在线观看 | 国产涩图 | 久久天堂影院 | 日本aa在线 | 精品伊人久久久 | 久久久久久久久久电影 | 在线v片| 91资源在线观看 | 在线观看视频在线观看 | 99精品欧美一区二区三区黑人哦 | 视频在线观看国产 | 99国产视频 | 色姑娘综合 | 在线99| 国产精品久久久久9999 | 在线视频 影院 | 人人看人人做人人澡 | 日韩欧美大片免费观看 | 中文字幕一二三区 | 亚洲在线a | 91cn国产在线 | 五月婷婷狠狠 | 午夜影院一级 | 国产日韩在线看 | 亚洲午夜av电影 | 欧美先锋影音 | 青春草免费视频 | 91精品一区二区三区蜜桃 | 成人羞羞视频在线观看免费 | a特级毛片 | 亚洲免费在线播放视频 | 日韩视频一| 玖玖爱国产在线 | 91成人区 | 亚洲成人精品久久久 | 成人资源站 | 婷婷黄色片 | 中文在线免费一区三区 | 黄色在线免费观看网址 | 999男人的天堂 | 欧美日韩一区二区在线观看 | 91在线影视 | 国产精品九九热 | 免费看的黄色小视频 | 亚洲三级性片 | 亚洲综合视频在线播放 | 一区二区三区视频在线 | 久久99精品热在线观看 | www.色爱 | 日韩91精品| www.香蕉视频 | 久草网视频在线观看 | 国产亚洲在 | 亚洲国产精品999 | 天天射天天干天天 | 成人精品在线 | 色综合天天综合网国产成人网 | 手机在线小视频 | 国产高清久久久久 | 欧美性色xo影院 | 国产精品久久久久久久久久新婚 | 久久久精品一区二区三区 | 伊人成人久久 | 在线观看黄色 | 手机av观看 | 国产手机视频在线观看 | 中文字幕资源网在线观看 | 亚洲精品在线播放视频 | 97色资源 | 免费精品视频在线观看 | 国产三级在线播放 | 国产欧美在线一区二区三区 | www欧美色 | 日韩在线影视 | 蜜臀av性久久久久av蜜臀三区 | 国产精品门事件 | 日韩中文字幕在线观看 | 91av片 | 久久综合狠狠综合 | 国产高清视频在线免费观看 | 免费观看一级视频 | 国产69精品久久app免费版 | 日韩免费观看一区二区三区 | 国产视频69 | 91豆花在线观看 | 人人狠狠综合久久亚洲婷 | 免费观看午夜视频 | av在线观| 国产色黄网站 | 日本公妇在线观看 | 亚洲视频在线视频 | 黄色国产大片 | 免费亚洲视频 | 色.www | 久久久久亚洲精品男人的天堂 | 亚洲精品在线观 | 久久久久国产精品免费网站 | 久久精品99国产精品亚洲最刺激 | 日韩在线视频线视频免费网站 | 永久免费av在线播放 | 91亚洲精品久久久蜜桃网站 | 国产精品视频999 | 午夜免费视频网站 | 97视频成人| 97超碰在线播放 | 国产精品精品久久久久久 | 伊人看片 | 香蕉精品视频在线观看 | 日韩免费中文 | 97热在线观看 | 日韩毛片在线一区二区毛片 | 亚洲成人av一区二区 | 国产日本高清 | 免费av在线网 | 成人黄色电影免费观看 | 丝袜美腿亚洲综合 | 91视频免费看 | 91精品老司机久久一区啪 | 欧美91精品国产自产 | 91精品视频网站 | 日韩专区一区二区 | 成人av电影免费观看 | 99视频网站| av在线中文 | 国产精久久久久久妇女av | 久爱综合 | 婷婷伊人五月天 | 国产精品中文字幕在线播放 | 一级黄色免费网站 | 久久久久免费精品视频 | 天天做天天干 | 国产精品久久久久久久久软件 | 成人一级免费电影 | 久久九九免费 | 99久热在线精品视频成人一区 | 国产精品久久久久久久久免费 | 99视频这里有精品 | 欧美国产91 | 日本精品视频免费 | av日韩在线网站 | 婷婷久月| 亚洲区视频在线观看 | 91自拍视频在线观看 | 午夜av日韩 | 免费日韩 精品中文字幕视频在线 | 久久久伦理 | 日韩理论在线 | 国产免费一区二区三区最新 | 在线精品视频免费观看 | 一本到在线 | av中文在线影视 | 中文字幕视频网站 | 中文字幕在线不卡国产视频 | 亚洲精品资源在线观看 | 精品一区三区 | 欧美日韩一区二区三区在线观看视频 | 99一区二区三区 | 久久ww| 日本在线视频一区二区三区 | 深夜免费小视频 | 91原创在线观看 | 亚洲精品美女在线观看播放 | 综合激情网... | a视频在线观看 | av日韩在线网站 | 精品字幕 | 欧美一区二区三区在线视频观看 | 免费在线观看不卡av | 成人av电影免费观看 | 五月婷婷在线观看 | 国产一二三精品 | 九九视频免费观看视频精品 | 亚洲波多野结衣 | 九九精品视频在线看 | 91福利在线导航 | 99视频网站 | 天天综合网~永久入口 | 91理论片午午伦夜理片久久 | 福利在线看片 | 444av| 久草视频中文在线 | 91视频高清 | 久久久久久久久久久免费 | 国产成人精品国内自产拍免费看 | 成人黄色大片在线观看 | 四虎免费在线观看视频 | 国产精品毛片网 | 天天爱天天舔 | 国产精品久久久久久久久久久久午 | 欧美一级久久久 | 欧美怡红院视频 | 91av超碰| 麻豆影视在线播放 | 午夜视频免费 | 久久黄色成人 | 久久久久久高潮国产精品视 | 国产一区视频在线播放 | 久久男女视频 | 久久,天天综合 | 国产精品欧美久久久久三级 | 毛片网站在线看 | 天天做天天干 | 国产裸体永久免费视频网站 | 黄色国产高清 | 人人干人人超 | 久久精品精品电影网 | 麻豆视频成人 | 色www精品视频在线观看 | 日韩欧美黄色网址 | 99热国内精品 | 成人久久18免费网站图片 | 99久久久久成人国产免费 | 欧美色图一区 | 91九色国产蝌蚪 | 亚洲国产精品人久久电影 | 99精品免费在线 | 国产精品美女久久久网av | av网站在线免费观看 | 午夜av在线播放 | 福利一区视频 | 在线视频你懂 | 国产精品普通话 | 日韩一级理论片 | 日韩在线视频线视频免费网站 | 麻豆免费视频网站 | 国产精品久久久久久高潮 | 日日干夜夜草 | 97精品国产91久久久久久 | 久久老司机精品视频 | 国产一线二线三线性视频 | 国产中文字幕av | 毛片3 | 国产高清在线精品 | 久久精品男人的天堂 | 97视频在线播放 | 日韩成人免费在线电影 | 中文字幕免费观看 | 中文字幕 国产视频 | 在线免费观看成人 | 嫩草91影院 | 伊人久久精品久久亚洲一区 | 91福利社区在线观看 | 久草在线免费播放 | 操操色 | 日韩高清毛片 | 久久撸在线视频 | 97av.com | 超碰在线9 | 又黄又爽的视频在线观看网站 | 日韩在线视频一区二区三区 | 日韩精品免费专区 | 99视频在线观看免费 | 久久久久欧美精品999 | 成 人 黄 色 视频免费播放 | av观看免费在线 | 四虎8848免费高清在线观看 | 精品美女久久久久 | 麻豆成人在线观看 | 久久精品站 | 日韩欧美在线一区 | 国产视频在线看 | 色中射 | 一区二区三区中文字幕在线观看 | 成人午夜精品福利免费 | 狂野欧美激情性xxxx欧美 | 色噜噜在线观看视频 | 国产精品免费视频一区二区 | 一区久久久 | 91福利国产在线观看 | 91日韩精品一区 | 久久久久网址 | 欧美日韩一区二区三区视频 | 欧美一二三视频 | 久久免费毛片视频 | 日韩免费精品 | 久草在线 | 免费亚洲视频在线观看 | 成人免费在线看片 | 丝袜美腿在线视频 | 欧美一性一交一乱 | 国产精品视频在线观看 | 一级黄色片在线 | 狠狠的操你 | 日操干| 人人干,人人爽 | 欧美一区二区在线刺激视频 | 亚洲最大成人免费网站 | 国产啊v在线| 国产欧美综合在线观看 | 精品一区二区亚洲 | 免费看的国产视频网站 | 美女网站在线免费观看 | 国产v在线播放 | 亚洲精品永久免费视频 | 99视频在线 | 亚洲一区网 | 日韩精品中文字幕在线 | 九九有精品 | 久99久在线 | a v在线观看 | 亚洲一区日韩在线 | 午夜性生活片 | 波多野结衣在线视频免费观看 | 香蕉网在线 | 四虎国产永久在线精品 | 欧美亚洲专区 | 99热官网 | 婷婷伊人五月天 | 久久精品免费电影 | 国产精品成 | 黄色成人在线 | 国产免费高清视频 | 国产精品专区在线 | 国产午夜在线观看 | 欧美极品一区二区三区 | 97综合网 | 91亚瑟视频 | 亚洲精品在线视频 | 国产成人在线一区 | 在线观看福利网站 | 欧美三人交 | 久久欧美在线电影 | 偷拍福利视频一区二区三区 | 国产1级视频 | 日本中文字幕网站 | 九色视频自拍 | 四虎影视欧美 | 欧美一级视频一区 | 黄色字幕网 | 精品久久久久久综合 | 五月激情亚洲 | 亚洲草视频 | 五月天天天操 | 少妇性aaaaaaaaa视频 | 亚洲成人午夜在线 | 欧美日韩国产三级 | 香蕉久久久久 | av电影在线免费观看 | 91免费视频网站在线观看 | 在线91视频| 97免费中文视频在线观看 | 国产在线播放一区二区 | 婷婷色5月| 伊人导航 | 91av电影网| 超碰97网站| 精品欧美一区二区在线观看 | 久久国产精品电影 | 午夜视频导航 | 毛片网在线播放 | 一区二区三区视频在线 | 黄污网站在线观看 | 狠色在线| 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 免费看黄在线网站 | 成年人视频免费在线播放 | 日日麻批40分钟视频免费观看 | 日韩一二三 | 婷婷在线精品视频 | 久久免费视频观看 | 日韩在线三区 | 国产精品视频免费在线观看 | 午夜精品久久久久99热app | 久久免费精品 | 亚洲性少妇性猛交wwww乱大交 | 国产精品美女久久久久久久久久久 | 成人欧美日韩国产 | 国产人成看黄久久久久久久久 | 日韩三级视频在线观看 | 国产精品欧美日韩 | 中国老女人日b | 免费人做人爱www的视 | 日韩免费在线观看 | 极品嫩模被强到高潮呻吟91 | 亚洲精品国产精品国产 | 国内精品毛片 | 精品国产免费人成在线观看 | 中日韩欧美精彩视频 | 99婷婷狠狠成为人免费视频 | 欧美国产日韩激情 | 精品久久国产精品 | 久久久久久久综合色一本 | 国产精品久久久久av | 亚洲电影av在线 | 91黄视频在线 | 亚洲一级性| 国产精品99久久免费黑人 | 成人看片 | 亚洲精品国精品久久99热 | 久久久久久福利 | 亚洲黄色免费网站 | 久久综合九色综合97婷婷女人 | 91在线视频导航 | 欧美日韩亚洲在线 | 视频国产区 | 在线观看精品黄av片免费 | 精品国产亚洲一区二区麻豆 | 四虎4hu永久免费 | 国产一级大片在线观看 | 在线观看视频一区二区三区 | 97综合网 | 国产免费观看久久黄 | 少妇bbw搡bbbb搡bbb| 区一区二区三在线观看 | 欧美另类sm图片 | 亚洲天堂网视频在线观看 | 国产中文视 | 天天干天天做天天爱 | 久久久久在线视频 | 天天做天天爱天天爽综合网 | 精品久久久亚洲 | 日韩精品一区二区三区免费观看视频 | 99视频网站| 狠狠狠狠狠狠 | 国产精品2018 | 国产视频999| 婷婷干五月 | www视频在线播放 | 免费看黄的视频 | 亚洲一区二区三区毛片 | 91资源在线免费观看 | 九九九九热精品免费视频点播观看 | 国产九九热视频 | 国产欧美中文字幕 | 少妇超碰在线 | 欧美一区二区伦理片 | 在线观看片 | 国产精品精品久久久久久 | 狠狠艹夜夜干 | 中文字幕在线人 | 久久国产a | 成人在线视频免费 | 五月天亚洲婷婷 | 国产资源在线观看 | 中文字幕av有码 | aaa毛片视频 | 98精品国产自产在线观看 | 九九九在线观看视频 | 亚洲日本在线视频观看 | 日韩福利在线观看 | 国产高清网站 | 免费黄色av.| 一区二区三区四区精品视频 | 五月婷婷色丁香 | 久久久网 | 成人亚洲免费 | 亚洲深夜影院 | 一区二区三区在线免费播放 | 在线www色 | 一级片黄色片网站 | 四虎影视久久久 | 国产97视频在线 | 精品视频专区 | 亚洲91精品在线观看 | 亚洲精品国产精品国自产 | 黄色精品免费 | 九九欧美视频 | 一区二区精品在线 | 黄色一级大片免费看 | 日本精品免费看 | 午夜精品一区二区三区视频免费看 | 欧美一区日韩精品 | 最近在线中文字幕 | 成人久久国产 | 国产99亚洲 | 亚洲国产中文字幕在线视频综合 | 久久黄色a级片 | 日女人免费视频 | 人人草在线观看 | 中文字幕 国产视频 | 久久午夜国产 | 亚洲精品美女久久17c | 狠狠狠色丁香婷婷综合激情 | 黄色电影网站在线观看 | 欧美一级xxxx | 丁香花中文在线免费观看 | av线上免费观看 | 亚洲精品国产精品乱码在线观看 | 午夜精品久久久久久久99 | 91av美女| 高清一区二区 | 日韩精品一区二区三区不卡 | 操综合| 狠狠夜夜 | 中文字幕网站视频在线 | 日本激情动作片免费看 | 99九九99九九九视频精品 | 日韩中文字幕免费在线播放 | 爱色av.com | 国产精品99久久久久久久久 | 97网站 | 亚洲最大免费成人网 | 中文字幕欲求不满 | 在线综合色 | 日韩一区正在播放 | 国产高清日韩欧美 | 久草观看 | 丁香婷婷激情啪啪 | 成人一区在线观看 | 91色欧美| 手机av电影在线 | 九九久久精品视频 | 日韩电影在线观看一区二区三区 | 99re国产视频 | www.久久色.com| 午夜精品成人一区二区三区 | 日本中文字幕在线视频 | 日本久久电影 | 日本资源中文字幕在线 | www.国产视频 | 国产精品人人做人人爽人人添 | 一区二区三区免费在线观看视频 | 色网站在线免费观看 | 三级黄色理论片 | 成人午夜电影在线播放 | 精品亚洲网 | 四虎永久免费网站 | 久久精品欧美一区二区三区麻豆 | 国产日产精品一区二区三区四区 | 日日操网 | 99久久久久久久 | 亚洲成人精品影院 | 国产999精品久久久久久 | 国产精品igao视频网入口 | 精品99999| 玖玖玖精品 | 免费成人结看片 | 国产香蕉97碰碰碰视频在线观看 | www.干| 国产日韩中文字幕在线 | 久久 地址 | 国产丝袜网站 | 精品国产1区2区 | 免费特级黄毛片 | 国产精品国产三级国产不产一地 | 国产成人免费观看 | 精品一二三四五区 | 亚洲高清资源 | 久久久国产精品亚洲一区 | 在线观看日韩专区 | 国产精品成人一区二区三区吃奶 | 亚洲精品国产精品国自产观看 | 国产91粉嫩白浆在线观看 | 成 人 黄 色 视频免费播放 | 免费在线成人av电影 | 久久久久久久网 | 美女视频免费精品 | 人人澡人人添人人爽一区二区 | 国产小视频在线免费观看视频 | 在线观看免费日韩 | 欧美一级片在线观看视频 | 日韩免费在线观看 | 久久精品波多野结衣 | 午夜影院一级片 | 日本性xxxxx| 中文字幕最新精品 | 亚洲自拍偷拍色图 | 成人网看片 | 99色精品视频 | 免费日韩高清 | 91大神视频网站 | 亚洲视频免费在线看 | 亚洲国产视频a | 欧美孕妇与黑人孕交 | 亚洲免费精品视频 | www.香蕉| 久久免费精品一区二区三区 | 国产一区国产二区在线观看 | 激情欧美xxxx| 中文字幕免费不卡视频 | 97电影手机| 中文字幕亚洲欧美日韩 | 91成人黄色 | 亚洲精品中文在线观看 | 亚洲成a人片在线观看网站口工 |