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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言:关键字volatile详解!

發(fā)布時間:2025/6/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言:关键字volatile详解! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、volatile 介紹

參看:volatile詳解

參看:C Language Keywords

?

Indicates that a variable can be changed by a background routine.

Keyword?volatile?is an extreme opposite of?const.It indicates that a variable may be changed in a way which is absolutely unpredictable by analysing the normal program flow (for example, a variable which may be changed by an interrupt handler). This keyword uses the following syntax:

volatile data-definition;

?

Every reference to the variable will reload the contents from memory rather than take advantage of situations where a copy can be in a register.

?

翻譯:

表示一個變量也許會被后臺程序改變,關(guān)鍵字 volatile 是與 const 絕對對立的。它指示一個變量也許會被某種方式修改,這種方式按照正常程序流程分析是無法預知的(例如,一個變量也許會被一個中斷服務程序所修改)。這個關(guān)鍵字使用下列語法定義:

?

volatile data-definition;

?

變量如果加了 volatile 修飾,則會從內(nèi)存重新裝載內(nèi)容,而不是直接從寄存器拷貝內(nèi)容。?

?

volatile應用比較多的場合,在中斷服務程序和cpu相關(guān)寄存器的定義

示例:

volatile 用于相關(guān)寄存器定義

//編譯led.c文件#define GPC1CON *((volatile unsigned int*)0xE0200080) #define GPC1DAT *((volatile unsigned int*)0xE0200084) #define GPC1PUD *((volatile unsigned int*)0xE0200088) //隱式聲明 void delay (unsigned int); void led_test (void) {//配置相應管腳為輸出功能 GPC1_3GPC1CON &= ~(0x0f << 12);GPC1CON |= (1 << 12);//GPC1_4為輸出功能GPC1CON |= (1 << 16);//禁止內(nèi)部上拉下拉功能GPC1PUD &= ~(0x03 << 6);GPC1PUD &= ~(0x03 << 8);while (1) {//燈亮GPC1DAT |= (1 << 3);GPC1DAT |= (1 << 4);delay (0x100000);//燈滅GPC1DAT &= ~(1 << 3);GPC1DAT &= ~(1 << 4);delay (0x100000);} }void delay (unsigned int n) {unsigned int i = 0;for (i = n; i != 0; i--); }編譯: arm-linux-gcc -c led.c -o led.o –nostdlib 不使用標準庫,生成led.o文件

二、為什么使用 volatile

我們上一篇文章講到了 const 和 volatile 關(guān)鍵字是一種類型修飾符volatile 的作用?是作為指令關(guān)鍵字,確保本條指令不會因編譯器的優(yōu)化而省略,且要求每次直接讀值。

?

現(xiàn)在考慮一個問題,編譯器如何對代碼進行優(yōu)化的?

我們看一個例子:

//示例一 #include <stdio.h> int main (void) {int i = 10;int a = i; //優(yōu)化int b = i;printf ("i = %d\n", b);return 0; } //編譯優(yōu)化、查看匯編 gcc -O2 -S test.c cat test.s .file "test.c".section .rodata.str1.1,"aMS",@progbits,1 .LC0:.string "i = %d\n".section .text.startup,"ax",@progbits.p2align 4,,15.globl main.type main, @function main: .LFB22:.cfi_startprocpushl %ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl %esp, %ebp.cfi_def_cfa_register 5andl $-16, %espsubl $16, %espmovl $10, 8(%esp)movl $.LC0, 4(%esp)movl $1, (%esp)call __printf_chkxorl %eax, %eaxleave.cfi_restore 5.cfi_def_cfa 4, 4ret.cfi_endproc .LFE22:.size main, .-main.ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3".section .note.GNU-stack,"",@progbits //示例二 #include <stdio.h> int main (void) {volatile int i = 10;int a = i; //未優(yōu)化int b = i;printf ("i = %d\n", b);return 0; } //編譯優(yōu)化、查看匯編 gcc -O2 -S test.c cat test.s .file "test.c".section .rodata.str1.1,"aMS",@progbits,1 .LC0:.string "i = %d\n".section .text.startup,"ax",@progbits.p2align 4,,15.globl main.type main, @function main: .LFB22:.cfi_startprocpushl %ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl %esp, %ebp.cfi_def_cfa_register 5andl $-16, %espsubl $32, %espmovl $10, 28(%esp)movl 28(%esp), %eaxmovl 28(%esp), %eaxmovl $.LC0, 4(%esp)movl $1, (%esp)movl %eax, 8(%esp)call __printf_chkxorl %eax, %eaxleave.cfi_restore 5.cfi_def_cfa 4, 4ret.cfi_endproc .LFE22:.size main, .-main.ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3".section .note.GNU-stack,"",@progbits

比較:

可以清楚的看到:使用 volatile 的代碼編譯未優(yōu)化。

volatile 指出 i 是隨時可能發(fā)生變化的,每次使用它的時候必須從 i的地址中讀取,因而編譯器生成的匯編代碼會重新從i的地址讀取數(shù)據(jù)放在 b 中。而優(yōu)化做法是,由于編譯器發(fā)現(xiàn)兩次從 i讀數(shù)據(jù)的代碼之間的代碼沒有對 i 進行過操作,它會自動把上次讀的數(shù)據(jù)放在 b 中。而不是重新從 i 里面讀。這樣以來,如果 i是一個寄存器變量或者表示一個端口數(shù)據(jù)就容易出錯,所以說?volatile 可以保證對特殊地址的穩(wěn)定訪問

?

如果上述例子,還是不夠明顯:

#include <stdio.h> #include <sys/timeb.h> long long getSystemTime() { struct timeb t; ftime(&t); return 1000 * t.time + t.millitm; } #define TIME 1000000000 int main(void) { volatile int a, b = TIME; /* volatile修飾變量 */ int x, y = TIME; /* 一般變量 */ long long start = 0, end = 0; start=getSystemTime(); for (a = 0; a < b; a++); end=getSystemTime(); printf("vloatile修飾變量用時: %lld ms\n", end - start); start=getSystemTime(); for (x = 0; x < y; x++); end=getSystemTime(); printf("一般變量用時: %lld ms\n", end - start); return 0; } ?

?

編譯:gcc test.c 輸出結(jié)果: vloatile修飾變量用時: 3738 ms 一般變量用時: 3742 ms 優(yōu)化編譯:gcc -O2 test.c 輸出結(jié)果: vloatile修飾變量用時: 3550 ms 一般變量用時: 0 ms

可明顯看出:

for(int i=0; i<100000; i++);
這個語句用來測試空循環(huán)的速度的,但是編譯器肯定要把它優(yōu)化掉,根本就不執(zhí)行。
如果你寫成,
for(volatile int i=0; i<100000; i++);

它就會執(zhí)行了。

?

我們用上面的例子基本已經(jīng)搞明白,volatile 不會被編譯器優(yōu)化了,現(xiàn)在講點理論知識。

參看:C語言中volatile關(guān)鍵字的作用

?

1、編譯器優(yōu)化介紹:
由于內(nèi)存訪問速度遠不及CPU處理速度
,為提高機器整體性能,在硬件上引入硬件高速緩存Cache,加速對內(nèi)存的訪問。另外在現(xiàn)代CPU中指令的執(zhí)行并不一定嚴格按照順序執(zhí)行,沒有相關(guān)性的指令可以亂序執(zhí)行,以充分利用CPU的指令流水線,提高執(zhí)行速度。以上是硬件級別的優(yōu)化。再看軟件一級的優(yōu)化:一種是在編寫代碼時由程序員優(yōu)化,另一種是由編譯器進行優(yōu)化。編譯器優(yōu)化常用的方法有:將內(nèi)存變量緩存到寄存器;調(diào)整指令順序充分利用CPU指令流水線,常見的是重新排序讀寫指令。對常規(guī)內(nèi)存進行優(yōu)化的時候,這些優(yōu)化是透明的,而且效率很好。由編譯器優(yōu)化或者硬件重新排序引起的問題的解決辦法是在從硬件(或者其他處理器)的角度看必須以特定順序執(zhí)行的操作之間設置內(nèi)存屏障(memory barrier),Linux 提供了一個宏解決編譯器的執(zhí)行順序問題。
void Barrier(void)
這個函數(shù)通知編譯器插入一個內(nèi)存屏障,但對硬件無效,編譯后的代碼會把當前CPU寄存器中的所有修改過的數(shù)值存入內(nèi)存,需要這些數(shù)據(jù)的時候再重新從內(nèi)存中讀出。

2、volatile總是與優(yōu)化有關(guān),編譯器有一種技術(shù)叫做數(shù)據(jù)流分析,分析程序中的變量在哪里賦值、在哪里使用、在哪里失效,分析結(jié)果可以用于常量合并,常量傳播等優(yōu)化,進一步可以消除一些代碼。但有時這些優(yōu)化不是程序所需要的,這時可以用volatile關(guān)鍵字禁止做這些優(yōu)化。

volatile的本意是“易變的” 因為訪問寄存器要比訪問內(nèi)存單元快的多,所以編譯器一般都會作減少存取內(nèi)存的優(yōu)化,但有可能會讀臟數(shù)據(jù)。當要求使用volatile聲明變量值的時候,系統(tǒng)總是重新從它所在的內(nèi)存讀取數(shù)據(jù),即使它前面的指令剛剛從該處讀取過數(shù)據(jù)。精確地說就是,遇到這個關(guān)鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進行優(yōu)化,從而可以提供對特殊地址的穩(wěn)定訪問;如果不使用valatile,則編譯器將對所聲明的語句進行優(yōu)化。(簡潔的說就是:volatile關(guān)鍵詞影響編譯器編譯的結(jié)果,用volatile聲明的變量表示該變量隨時可能發(fā)生變化,與該變量有關(guān)的運算,不要進行編譯優(yōu)化,以免出錯

?

三、volatile 使用

1、并行設備的硬件寄存器(如:狀態(tài)寄存器)

存儲器映射的硬件寄存器通常也要加 voliate,因為每次對它的讀寫都可能有不同意義。

例如:
假設要對一個設備進行初始化,此設備的某一個寄存器為0xff800000。

int *output = (unsigned int *)0xff800000;//定義一個IO端口; int init(void) {int i;for(i=0;i< 10;i++){*output = i; } }

經(jīng)過編譯器優(yōu)化后,編譯器認為前面循環(huán)半天都是廢話,對最后的結(jié)果毫無影響,因為最終只是將output這個指針賦值為 9,所以編譯器最后給你編譯編譯的代碼結(jié)果相當于:

int init(void) {*output = 9; }

如果你對此外部設備進行初始化的過程是必須是像上面代碼一樣順序的對其賦值,顯然優(yōu)化過程并不能達到目的。反之如果你不是對此端口反復寫操作,而是反復讀操作,其結(jié)果是一樣的,編譯器在優(yōu)化后,也許你的代碼對此地址的讀操作只做了一次。然而從代碼角度看是沒有任何問題的。這時候就該使用volatile通知編譯器這個變量是一個不穩(wěn)定的,在遇到此變量時候不要優(yōu)化。

?

再例如上面提到的?volatile 用于相關(guān)寄存器定義

//編譯led.c文件#define GPC1CON *((volatile unsigned int*)0xE0200080) #define GPC1DAT *((volatile unsigned int*)0xE0200084) #define GPC1PUD *((volatile unsigned int*)0xE0200088) //隱式聲明 void delay (unsigned int); void led_test (void) {//配置相應管腳為輸出功能 GPC1_3GPC1CON &= ~(0x0f << 12);GPC1CON |= (1 << 12);//GPC1_4為輸出功能GPC1CON |= (1 << 16);//禁止內(nèi)部上拉下拉功能GPC1PUD &= ~(0x03 << 6);GPC1PUD &= ~(0x03 << 8);while (1) {//燈亮GPC1DAT |= (1 << 3);GPC1DAT |= (1 << 4);delay (0x100000);//燈滅GPC1DAT &= ~(1 << 3);GPC1DAT &= ~(1 << 4);delay (0x100000);} }void delay (unsigned int n) {unsigned int i = 0;for (i = n; i != 0; i--); }編譯: arm-linux-gcc -c led.c -o led.o –nostdlib 不使用標準庫,生成led.o文件

#define GPC1CON *((volatile unsigned int*)0xE0200080) ??怎么理解?

這里其實就是定義了一個指針變量。

GPC1CON 為寄存器名稱、0xE0200080 為寄存器地址、(volatile unsigned int*) 為強制類型轉(zhuǎn)換。

我們知道 volatile 和 const 一樣為類型修飾符,不改變變量類型。

?

寄存器地址為什么要加 volatile 修飾呢?

是因為,這些寄存器里面的值是隨時變化的。如果我們沒有將這個地址強制類型轉(zhuǎn)換成 volatile,那么我們在使用GPC1CON 這個寄存器的時候,?會直接從 CPU 的寄存器中取值。因為之前GPC1CON ?被訪問過,也就是之前就從內(nèi)存中取出?GPC1CON 的值保存到某個寄存器中。之所以直接從寄存器中取值,而不去內(nèi)存中取值,是因為編譯器優(yōu)化代碼的結(jié)果(訪問 CPU寄存器比訪問 RAM 快的多)。用 volatile 關(guān)鍵字對?0xE0200080 ?進行強制轉(zhuǎn)換,使得每一次訪問?GPC1CON 時,執(zhí)行部件都會從?0xE0200080 ?這個內(nèi)存單元中取出值來賦值給?GPC1CON ?。

?

2、一個中斷服務子程序中會訪問到的非自動變量(Non-automatic variables)

由于訪問寄存器的速度要快過RAM,所以編譯器一般都會作減少存取外部RAM的優(yōu)化,例如:

static int i=0; //i 為非自動變量 int main(void) {...while (1){ if (i) dosomething(); } } /* Interrupt service routine. */ void ISR_2(void) {i=1; }

程序的本意是希望 ISR_2 中斷產(chǎn)生時,在main函數(shù)中調(diào)用 dosomething 函數(shù),但是,由于編譯器判斷在 main 函數(shù)里面沒有修改過 i,因此可能只執(zhí)行一次對從i到某寄存器的讀操作,然后每次if判斷都只使用這個寄存器里面的“i副本”,導致 dosomething 永遠也不會被調(diào)用。如果將變量加上 volatile 修飾,則編譯器保證對此變量的讀寫操作都不會被優(yōu)化(肯定執(zhí)行)。此例中i也應該如此說明。

?

3、多線程應用中被幾個任務共享的變量

當兩個線程都要用到某一個變量且該變量的值會被改變時,應該用 volatile 聲明,該關(guān)鍵字的作用是防止優(yōu)化編譯器把變量從內(nèi)存裝入CPU寄存器中。如果變量被裝入寄存器,那么兩個線程有可能一個使用內(nèi)存中的變量,一個使用寄存器中的變量,這會造成程序的錯誤執(zhí)行。volatile的意思是讓編譯器每次操作該變量時一定要從內(nèi)存中真正取出,而不是使用已經(jīng)存在寄存器中的值,如下:

volatile BOOL bStop = FALSE; //bStop 為共享全局變量 (1) 在一個線程中: while( !bStop ) { ... } bStop = FALSE; return; (2) 在另外一個線程中,要終止上面的線程循環(huán): bStop = TRUE; while( bStop );

等待上面的線程終止,如果bStop不使用volatile申明,那么這個循環(huán)將是一個死循環(huán),因為bStop已經(jīng)讀取到了寄存器中,寄存器中bStop的值永遠不會變成FALSE,加上volatile,程序在執(zhí)行時,每次均從內(nèi)存中讀出bStop的值,就不會死循環(huán)了。

?

四、volatile 問題和總結(jié)

volatile 常見的幾個面試題

1、一個參數(shù)既可以是const還可以是volatile嗎?

可以,例如只讀的狀態(tài)寄存器。它是 volatile 因為它可能被意想不到地改變。它是 const 因為 程序不應該試圖去修改它。

?

2、一個指針可以是 volatile 嗎?

可以,當一個中服務子程序修改一個指向一個 buffer 的指針時。

3、下面的函數(shù)有什么錯誤:?

int square(volatile int *ptr) { return *ptr * *ptr; }

這段代碼的目的是用來返指針*ptr指向值的平方,但是,由于*ptr指向一個volatile型參數(shù),編譯器將產(chǎn)生類似下面的代碼:

int square(volatile int *ptr) { int a,b; a = *ptr; b = *ptr; return a * b; }

由于*ptr的值可能被意想不到地該變,因此a和b可能是不同的。結(jié)果,這段代碼可能返不是你所期望的平方值!正確的代碼如下:?

long square(volatile int *ptr) { int a; a = *ptr; return a * a; }

總結(jié):

?

volatile 關(guān)鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改。volatile 提醒編譯器它后面所定義的變量隨時都有可能改變,因此編譯后的程序每次需要存儲或讀取這個變量的時候,都會直接從變量地址中讀取數(shù)據(jù)。如 果沒有 volatile 關(guān)鍵字,則編譯器可能優(yōu)化讀取和存儲,可能暫時使用寄存器中的值,如果這個變量由別的程序更新了的話,將出現(xiàn)不一致的現(xiàn)象。所以遇到這個關(guān)鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進行優(yōu)化,從而可以提供對特殊地址的穩(wěn)定訪問

總結(jié)

以上是生活随笔為你收集整理的C语言:关键字volatile详解!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

久久99精品久久久久久 | 欧美日韩一区二区视频在线观看 | 国产高清黄 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 久久综合中文色婷婷 | 91久久精品一区二区二区 | 婷婷国产视频 | 天天久久综合 | 成人黄色电影在线播放 | 天天天天天操 | 久久99深爱久久99精品 | 在线看的av网站 | 色九九视频 | 在线观看视频福利 | 亚洲激情影院 | 亚洲专区免费观看 | 91精品国产综合久久婷婷香蕉 | 人人草人人草 | 亚洲精品国产成人 | 夜夜视频欧洲 | 亚洲视频分类 | 色人久久 | 天天拍天天干 | 91九色蝌蚪视频 | 国产精品久久网站 | 最近日韩免费视频 | 天堂av在线7 | 天天爱天天操天天爽 | 五月天婷婷在线播放 | free. 性欧美.com | 一级大片在线观看 | 中文在线中文资源 | 中文字幕av免费在线观看 | 欧产日产国产69 | 69精品人人人人 | 福利视频一二区 | 色综合久久中文字幕综合网 | 中文字幕有码在线 | 91精品在线免费观看视频 | 99久久久久久| 国产精品第三页 | av在线观 | 亚洲精品一区二区在线观看 | 蜜桃久久久 | 狠狠干夜夜爽 | 最近免费中文字幕 | 永久av免费在线观看 | 久久久亚洲国产精品麻豆综合天堂 | 操操爽 | www最近高清中文国语在线观看 | 欧美 日韩 视频 | 综合在线观看色 | 亚洲专区 国产精品 | 99国产精品一区 | 久久超级碰视频 | 久久久久国产精品免费免费搜索 | 九九在线高清精品视频 | 婷婷视频在线播放 | 综合色婷婷 | 国产免费久久av | 国产一区自拍视频 | 国产精品18videosex性欧美 | av片在线观看 | 激情久久一区二区三区 | 国产在线不卡精品 | 亚洲精品视频一二三 | 免费成人在线视频网站 | 天天操天天吃 | 午夜精品一区二区三区可下载 | 波多野结衣视频一区 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 日本久久精品 | 五月开心激情网 | 国产白浆视频 | 97成人精品视频在线观看 | 亚洲综合欧美日韩狠狠色 | 美女av免费 | 最新av中文字幕 | 国产精品免费久久久久影院仙踪林 | 丁香婷婷激情国产高清秒播 | 欧美精品一区二区免费 | 韩日电影在线观看 | 亚欧洲精品视频在线观看 | 黄色国产区 | 国产成人一区二区三区 | 日韩在线 一区二区 | 99久久精品电影 | 色婷婷88av视频一二三区 | 97夜夜澡人人双人人人喊 | 天天色天天草天天射 | 久久99国产精品自在自在app | 99riav1国产精品视频 | 福利片视频区 | 亚洲精品国产精品乱码不99热 | 天天色天天上天天操 | 亚洲成人精品久久久 | 国产网站色 | 在线亚洲激情 | 久草国产在线观看 | 色视频网站免费观看 | 成人午夜网 | av高清不卡 | 国产色视频 | 日韩av电影国产 | av天天澡天天爽天天av | 国产精品一区二区免费 | 手机在线中文字幕 | 97超在线| 亚洲精品午夜aaa久久久 | 日本精a在线观看 | www,黄视频 | 美女露久久 | 色在线网站| 亚洲一区二区天堂 | 久久久久久久久免费 | 国产精品资源 | 亚洲日本va在线观看 | 91在线影视 | 狠狠色丁香婷婷综合 | 婷婷六月中文字幕 | 91视频 - 114av| 一区二区三区视频在线 | 激情欧美丁香 | 日韩精品 在线视频 | 中文字幕在线观看完整版 | 91精品久久久久久综合乱菊 | 天天曰 | 美女国内精品自产拍在线播放 | 中文字幕免费观看视频 | 狠狠色丁香久久综合网 | 国产玖玖视频 | 久久这里有精品 | 久久精品日产第一区二区三区乱码 | 久久精品99国产精品亚洲最刺激 | 97狠狠操| 西西大胆免费视频 | 成人免费一区二区三区在线观看 | 国产亚洲精品久久久久久大师 | 91精彩视频在线观看 | 手机在线小视频 | 亚洲精品美女在线观看 | 精品xxx| 国内精品久久影院 | 国产精品久久久久久久久久了 | 国产午夜不卡 | 亚洲精区二区三区四区麻豆 | 国产丝袜在线 | 九九热精品视频在线播放 | 综合在线观看色 | 黄色精品在线看 | 亚洲九九 | av东方在线 | 在线免费观看麻豆 | av在线免费在线 | www.久久爱.cn | www.xxx.性狂虐 | 91桃色国产在线播放 | 久久99国产精品二区护士 | 99久久精品免费 | 人人爽人人爽 | 日韩欧美高清一区二区三区 | 五月婷婷影视 | 91麻豆福利 | 久久久久久久久久久高潮一区二区 | 91精品国产乱码久久 | 色网站在线观看 | 五月天视频网 | 国产午夜精品av一区二区 | 97视频资源 | 国产只有精品 | 国产手机在线精品 | 亚洲欧美日本国产 | 精品国产一区二区三区蜜臀 | 五月天视频网 | 丝袜美腿在线视频 | 免费中文字幕在线观看 | 精品久久免费 | 黄色小说18| 一本一本久久a久久精品综合小说 | 久久久久亚洲精品国产 | 欧美成人h版电影 | 国产一区二区三精品久久久无广告 | 精品国产一区二区三区不卡 | 在线91播放 | 久久视频网 | 婷婷色社区 | 中文字幕在线一区二区三区 | 色久综合| 99热在线这里只有精品 | 色综合久久88色综合天天 | 日韩av五月天| 亚洲乱亚洲乱亚洲 | 在线黄av | 国产一卡久久电影永久 | 在线看片一区 | 久久无码av一区二区三区电影网 | 国产综合在线视频 | 亚洲六月丁香色婷婷综合久久 | 日韩专区在线播放 | 日本系列中文字幕 | 人交video另类hd| 成人毛片久久 | 亚洲午夜精品久久久久久久久久久久 | 97视频人人 | 国产91精品高清一区二区三区 | 免费精品视频 | 草久在线| 久久深夜 | 天天干天天操天天做 | 婷婷综合成人 | 国产免费xvideos视频入口 | 玖草在线观看 | 日本久久成人 | 久久爱www. | 狠狠色网| 亚洲黄色小说网址 | 激情丁香月 | 一级大片在线观看 | 久久久国产电影 | 日韩中文字幕网站 | 中文字幕在线看人 | 欧美一二在线 | 99精品国产一区二区三区麻豆 | 在线观看岛国av | 天天爱天天操 | 手机av在线不卡 | 亚洲国产精品一区二区尤物区 | 91成熟丰满女人少妇 | aaa日本高清在线播放免费观看 | 久久久精品国产免费观看一区二区 | 狠狠色伊人亚洲综合成人 | 欧美日韩在线精品一区二区 | 久久久久一区 | 久久影院精品 | 2022国产精品视频 | 色中色资源站 | 国产在线国产 | 五月婷婷六月丁香在线观看 | 精品9999 | 午夜在线国产 | 中文字幕乱码亚洲精品一区 | 国产视频 久久久 | av在观看| 欧美日韩免费观看一区二区三区 | 午夜精品视频一区二区三区在线看 | 久久99精品久久久久婷婷 | 久久久久久久久久国产精品 | 黄色在线观看免费 | 狠狠激情中文字幕 | 97超在线 | 久久久久久久久久网站 | 国产精品门事件 | 国产免费高清视频 | 久久av免费电影 | 日韩二区在线观看 | 成人av免费在线观看 | 欧美在线视频一区二区 | 日韩在线免费高清视频 | www.久久久精品 | 国产精品国产三级国产aⅴ9色 | 公与妇乱理三级xxx 在线观看视频在线观看 | 美女免费黄视频网站 | 99热精品国产一区二区在线观看 | 欧美午夜理伦三级在线观看 | 国产91综合一区在线观看 | 视频在线日韩 | 成人影片在线免费观看 | 91精品国产高清 | 精品高清美女精品国产区 | 亚洲精品小区久久久久久 | 在线va网站 | 亚洲乱码精品 | 激情综合电影网 | 日韩欧美观看 | 米奇狠狠狠888 | 久久午夜剧场 | 精品一区二区三区香蕉蜜桃 | 亚洲欧美在线观看视频 | 日韩欧美视频一区二区 | 黄色毛片在线观看 | 亚洲精品18日本一区app | 激情综合交 | 五月丁婷婷 | 天天色官网 | 黄色午夜网站 | 99久免费精品视频在线观看 | 国产精品视频永久免费播放 | 在线视频a | 中文字幕丝袜美腿 | 在线看中文字幕 | 久久国产免费看 | www.夜夜干.com | 91最新在线观看 | av专区在线 | 久久天天躁夜夜躁狠狠躁2022 | www.黄色片网站 | 色综合久久久久网 | 国产理伦在线 | 久久尤物电影视频在线观看 | 国产a国产a国产a | 国产我不卡 | 国产精品99久久久久久大便 | 五月天网站在线 | 九九热免费精品视频 | 一区电影 | 在线免费黄色 | 久久热首页 | 狠狠狠狠狠狠狠狠 | 麻豆91在线 | 午夜精品久久久久 | 日韩欧美精品在线视频 | www.久久精品视频 | 精品久久久久一区二区国产 | 精品综合久久久 | 91私密视频 | 免费看一及片 | 亚洲 综合 激情 | 婷婷深爱 | 国产精品视频99 | 狠狠色伊人亚洲综合网站野外 | 伊人伊成久久人综合网小说 | 91精品国产99久久久久 | 久久成人欧美 | av在线免费在线观看 | 九九久久精品 | 国内成人av | www..com黄色片| 久久久久这里只有精品 | 久久高清片 | 亚洲高清网站 | 一级片视频在线 | 久久婷婷一区 | 免费一级毛毛片 | 亚洲午夜精品一区二区三区电影院 | 国产亚洲精品精品精品 | 久久亚洲精品国产亚洲老地址 | 国产美女在线免费观看 | 色成人亚洲网 | 免费国产在线观看 | 在线观看免费视频 | 国产在线播放一区二区 | 国产精品视频最多的网站 | 综合亚洲视频 | 欧美精品久久久久久久久久白贞 | 毛片网站在线 | 在线观看福利网站 | 99热这里只有精品久久 | 精品免费久久久久久 | 蜜臀av在线一区二区三区 | 国产成人一区二区三区免费看 | a午夜在线| 欧美巨乳波霸 | 91久色蝌蚪| 国产精品专区h在线观看 | 免费一级片在线 | 亚洲精品白浆高清久久久久久 | 婷婷综合网 | 国产福利资源 | 亚洲最大av网 | 91亚洲精品久久久蜜桃借种 | 久久这里只有精品23 | 丁香电影小说免费视频观看 | 九草在线观看 | 久久久麻豆视频 | 国产精品一区二区久久 | 亚洲国产精品va在线看 | 手机成人在线 | 又大又硬又黄又爽视频在线观看 | 亚洲最大av网 | 精品影院| 国产丝袜网站 | 久久免费视频4 | 天天天天天天天天操 | 亚洲电影久久 | a级片在线播放 | 91成人在线免费观看 | 五月婷婷综合在线 | 天堂资源在线观看视频 | 天天操天天操天天操天天操天天操天天操 | 国产999精品视频 | 狠狠色丁香久久婷婷综 | 久久国产高清视频 | 国色天香在线观看 | wwwww.国产| 欧美日韩国产成人 | 国产精品午夜在线 | 国产xxxx做受性欧美88 | 国产精品精品国产婷婷这里av | 日本老少交 | 久久久久久久久久久网 | 久久观看| 黄色tv视频 | 久久精品国产99国产 | 男女日麻批 | 国产精品欧美久久久久无广告 | 中国一级片免费看 | 久久精品一二三区 | 在线视频中文字幕一区 | 九九天堂 | 亚洲男男gaygay无套 | 精品在线视频一区二区三区 | 国产区在线 | 91专区在线观看 | 中文字幕在线观 | sm免费xx网站 | 亚洲永久国产精品 | 天天爱天天插 | 久久久久久激情 | 99久久精品久久亚洲精品 | www.伊人网| 久久影院亚洲 | 亚洲电影网站 | 午夜.dj高清免费观看视频 | 91福利社在线观看 | 国产va精品免费观看 | 在线а√天堂中文官网 | 国内精品视频免费 | 国产亚洲精品成人av久久ww | 二区三区在线观看 | 欧美日韩精品在线观看 | 久草在线在线视频 | 国产成人61精品免费看片 | 国产小视频免费在线观看 | 91丨九色丨蝌蚪丨老版 | 最近中文字幕免费 | 黄色小说免费在线观看 | 国产精品一区二区果冻传媒 | a级国产乱理伦片在线观看 亚洲3级 | 久久黄色成人 | 国产精品99视频 | 国产精品久久久久久久久久久免费 | 西西大胆免费视频 | 香蕉视频久久久 | 欧美一级黄色网 | 毛片永久免费 | 亚洲综合色丁香婷婷六月图片 | 91精品国产99久久久久 | 日韩最新av在线 | 91豆麻精品91久久久久久 | 岛国一区在线 | 日韩精品你懂的 | 狠狠躁日日躁夜夜躁av | 最近乱久中文字幕 | 99国内精品 | av亚洲产国偷v产偷v自拍小说 | 一区在线观看 | av在线一 | 欧美激情操 | 天天爽夜夜爽精品视频婷婷 | 中文字幕精品在线 | 草久视频在线 | 天天草天天色 | 久久综合综合久久综合 | 在线观看视频中文字幕 | 黄色视屏在线免费观看 | 日韩av五月天| 国产青草视频在线观看 | 免费观看视频的网站 | 国产91精品在线观看 | 国产精品成人自产拍在线观看 | 日韩av资源站 | 欧美日韩精品综合 | 成人av影视在线 | 人人爽久久涩噜噜噜网站 | 欧美亚洲成人xxx | 精品国产一区在线观看 | 成人在线免费视频 | 精品国产中文字幕 | 国产一级黄大片 | 日韩欧美综合 | 国产精品欧美一区二区 | 九月婷婷综合网 | 四虎在线视频免费观看 | 成人国产精品免费 | 综合久久久 | 欧美日韩视频网站 | 在线观看91精品视频 | 久久久久久久久久久网站 | 91视频传媒 | 精品久久一级片 | 久久99九九99精品 | 欧美日韩不卡一区 | 成人免费一区二区三区在线观看 | 五月婷婷六月丁香 | 69国产精品视频免费观看 | 日韩一区二区三区观看 | 天天草天天操 | 亚洲精品小视频在线观看 | 狠狠色丁香婷婷综合久小说久 | 午夜电影久久久 | 亚洲国内精品 | 精品国产乱码久久 | 少妇高潮流白浆在线观看 | 天天舔天天射天天操 | 国产一区二区三区在线 | 特级aaa毛片| 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 久久久久久久久久久影视 | 久草爱| 国产精品av免费 | japanese黑人亚洲人4k | 成人免费av电影 | 99色国产| 久久99免费 | av在线直接看 | 免费中文字幕视频 | 久草免费福利在线观看 | av电影在线观看完整版一区二区 | 国产午夜激情视频 | 日韩专区在线播放 | 色婷婷在线播放 | 欧美国产精品一区二区 | 狠狠操夜夜操 | 成人黄色大片在线免费观看 | 亚洲午夜精 | 在线免费看片 | 九九在线播放 | 免费看黄20分钟 | 国产精品免费观看视频 | 91人人揉日日捏人人看 | 免费网站污 | 天堂av在线免费观看 | 色综合久久88 | 97成人啪啪网 | 天天爽夜夜爽人人爽一区二区 | 国产人成看黄久久久久久久久 | 国产探花在线看 | 国产中文在线播放 | 久久久精品国产一区二区电影四季 | 日韩成人黄色av | 狠狠操操操 | 国产精品久久久久久999 | 中文字幕电影高清在线观看 | 久久综合九色综合网站 | 中国美女一级看片 | 国产伦精品一区二区三区无广告 | 一本—道久久a久久精品蜜桃 | 国产视频精品免费播放 | 色婷婷激情电影 | 手机看国产毛片 | 在线免费观看黄色小说 | 日韩激情一二三区 | 热久精品 | 精品视频久久久 | 精品国产精品一区二区夜夜嗨 | 婷婷网站天天婷婷网站 | 成人一级电影在线观看 | 色婷婷五| 国产精品久久久久久妇 | 一区视频在线 | 亚洲在线a| 欧美日韩二三区 | 亚洲一级特黄 | 天天综合久久综合 | 91av在线播放视频 | 亚洲黄色一级大片 | 99视频| 性色av免费在线观看 | 97中文字幕 | 成人看片 | 香蕉看片 | 欧美精品一二 | 亚洲国产网站 | 久久久精品小视频 | 久久黄色网页 | 天天草天天草 | 97超碰免费在线 | 欧美国产日韩在线视频 | 久久艹国产视频 | 国产无套精品久久久久久 | 人人模人人爽 | 一区二区精品国产 | 亚洲传媒在线 | 99热手机在线| 欧美福利久久 | 婷婷丁香九月 | 久久爱导航 | 亚洲精品女人久久久 | 丰满少妇对白在线偷拍 | 日韩av免费一区二区 | 玖玖在线观看视频 | 日韩一区二区免费播放 | 精品视频久久久 | av中文天堂在线 | 美女免费电影 | 天堂资源在线观看视频 | 久久黄色免费 | 91亚洲精品久久久蜜桃 | 欧洲视频一区 | 免费久久久久久 | 亚洲成人黄色在线观看 | 久久精品亚洲一区二区三区观看模式 | 在线视频一区观看 | 99看视频在线观看 | 亚洲一区精品人人爽人人躁 | 激情视频综合网 | 中文字幕一区二区三区精华液 | 免费观看黄 | 欧美一级性生活 | 国产精品青草综合久久久久99 | 天天操天天射天天 | 天天搞天天干 | 午夜精品一区二区三区视频免费看 | 91亚洲精品久久久蜜桃借种 | 国产网红在线 | 91精品国产综合久久久久久久 | 嫩草91影院 | 午夜视频在线观看欧美 | 美女免费视频观看网站 | 国产 精品 资源 | 人人看人人艹 | 日韩av在线影视 | 国产亚洲精品电影 | 免费亚洲黄色 | 国产一区二区不卡在线 | 在线观看视频福利 | a在线免费观看视频 | 亚洲国产日韩欧美 | 91免费高清 | 婷婷视频在线播放 | 日韩欧美在线视频一区二区三区 | 亚洲干| 国产亚洲资源 | 狠狠狠狠狠狠操 | 激情在线网| 久久久精品国产一区二区三区 | 人人揉人人揉人人揉人人揉97 | 综合久色 | 久久天天躁狠狠躁亚洲综合公司 | 中文字幕资源站 | 久久久久久久av麻豆果冻 | 婷婷狠狠操 | 国产精品99精品 | 国产婷婷一区二区 | 亚洲精品午夜久久久 | 亚洲国产精品久久久久 | 亚洲精品在线网站 | 免费看污污视频的网站 | 午夜精品一区二区三区视频免费看 | 在线三级av | 久久人人爽av | 69久久夜色精品国产69 | 久久在线影院 | 日精品在线观看 | 亚洲成人软件 | 亚州免费视频 | 性色av一区二区三区在线观看 | 97超碰国产精品 | 久久99精品国产一区二区三区 | 五月天六月婷 | 2018精品视频| 日韩电影中文,亚洲精品乱码 | 久久免费国产精品 | 美女在线免费视频 | 久草在线手机观看 | 99免费在线 | 日韩色av色资源 | 日韩午夜在线播放 | 欧美国产日韩一区二区三区 | 成人网在线免费视频 | 亚洲区精品视频 | 欧美在线1 | 精品国产福利在线 | 丁香影院在线 | 国产婷婷精品av在线 | 最新精品视频在线 | aaa日本高清在线播放免费观看 | 国产精品一区二区麻豆 | 美女国内精品自产拍在线播放 | 欧美精品一区在线 | 97国产| 午夜视频在线观看一区二区三区 | 日本不卡一区二区三区在线观看 | 久久亚洲成人网 | 亚洲国产久 | 天天操夜夜操夜夜操 | 少妇bbbb揉bbbb日本 | 国产精品久久久久久模特 | 91av视频观看 | 亚洲精品欧洲精品 | 婷婷丁香激情综合 | 首页av在线 | 久久精品一区八戒影视 | 久久久久久久久久久久电影 | 国内精品久久久久久久久久 | 日韩xxx视频| 久草在线高清视频 | 成人免费网站在线观看 | 婷婷伊人综合亚洲综合网 | 色婷婷成人网 | 在线观看深夜福利 | 日韩激情在线视频 | 国产精品一区二区三区在线免费观看 | 国产黄色电影 | 日韩在线一级 | 少妇bbbb搡bbbb桶 | 中文在线| 欧美激情精品 | 综合天堂av久久久久久久 | 99热最新网址 | 2022久久国产露脸精品国产 | 日日夜夜精品免费观看 | 国产在线黄 | 91精品国产综合久久婷婷香蕉 | 日韩欧美视频一区 | 久久久精品国产一区二区 | 成人高清av在线 | 亚洲午夜av电影 | 人人爽人人澡人人添人人人人 | 中文不卡视频 | 99国产精品久久久久久久久久 | 波多野结衣视频一区二区 | 99r在线| 国产精品成人一区二区三区 | 一区二区电影在线观看 | 经典三级一区 | 欧美a视频| 主播av在线 | 91福利视频在线 | 激情婷婷丁香 | 亚洲精品久久久蜜桃直播 | 欧美日韩aaaa | 久久久免费视频播放 | 96av在线| 日韩一级理论片 | 四虎海外影库www4hu | 午夜久久成人 | 香蕉视频在线看 | 成人黄色电影在线观看 | 97天堂| 一区二区久久 | 国产视频网站在线观看 | 亚洲精品美女久久久 | 欧美日韩亚洲国产一区 | 色婷婷电影网 | 91av短视频| 色婷久久 | 日韩欧美国产视频 | 91视频啪 | 国产精品久久久久999 | 992tv又爽又黄的免费视频 | 久久久久久久国产精品视频 | av免费网站在线观看 | 高清不卡毛片 | 国产精品2020 | 免费看的黄色录像 | 午夜视频播放 | 一级片观看 | 波多野结衣综合网 | 亚洲精品乱码久久久久 | 最新av电影网站 | 日日爱av | 91麻豆网 | 操操操日日日干干干 | 免费观看性生活大片3 | 91亚洲综合| 午夜电影一区 | 久久精品一二三区白丝高潮 | 一级成人在线 | 久草网视频在线观看 | 欧美在线一二区 | 精品国产一区二区三区久久影院 | 久久精品4 | 久久精品网站视频 | 久久精品免费电影 | 欧美日韩国产精品一区二区三区 | 一级大片在线观看 | 91视视频在线直接观看在线看网页在线看 | 中文字幕在线观看播放 | 人人舔人人干 | 激情五月婷婷综合 | 九九一级片 | 婷婷午夜天 | 午夜99| 国产香蕉久久精品综合网 | aaa毛片视频 | 欧美日韩亚洲精品在线 | 久久综合久久鬼 | 最近2019中文免费高清视频观看www99 | 99久久精品国产一区 | 久久尤物电影视频在线观看 | 字幕网在线观看 | 国产精品久久久久高潮 | 久久久久国产精品www | 中文字幕亚洲五码 | 香蕉视频亚洲 | 国产91对白在线播 | 久久久精品网站 | 国产精品午夜在线观看 | 丁香花在线视频观看免费 | 96看片 | 中文字幕免费在线看 | 国产精品一区二区果冻传媒 | 午夜精品一区二区三区在线播放 | 日本中文字幕电影在线免费观看 | 日日干天天插 | 国产一二三四在线视频 | 久综合网| 能在线看的av | 中文字幕在线播放一区 | 久久免费的视频 | 国产91学生| 黄色软件网站在线观看 | 亚洲午夜av久久乱码 | 在线观看国产成人av片 | 最新日韩在线观看 | 99热在线国产 | 少妇av片 | 一区二区三区www | 天天草天天操 | 91看片一区二区三区 | 国产在线精品区 | 国产一级一级国产 | 久久久久日本精品一区二区三区 | 91精品国产欧美一区二区成人 | 97精品国产97久久久久久粉红 | 日本久久精品 | 六月丁香婷婷久久 | 色狠狠操| 国产精品自在欧美一区 | 四虎影视国产精品免费久久 | 91xav| www天天干 | 国产精品嫩草影院123 | 亚洲激情六月 | 亚洲免费一级电影 | 9免费视频 | 中国美女一级看片 | 天天干视频在线 | 91精品免费视频 | 不卡在线一区 | 国产成人久久av免费高清密臂 | 国产破处在线播放 | 国产高清99 | 国产一区二区三区 在线 | 国产五月 | 综合色中文 | 丁香婷五月 | 综合网成人 | 成人免费观看网站 | 在线a亚洲视频播放在线观看 | 亚洲精品乱码久久久久久蜜桃欧美 | 中文字幕刺激在线 | 欧美精品少妇xxxxx喷水 | 午夜性生活| 69国产精品成人在线播放 | 久久无码av一区二区三区电影网 | 欧美日韩国产高清视频 | 欧美日韩中文国产一区发布 | 久久久不卡影院 | 一区二区三区中文字幕在线观看 | 久久久久久久久久影视 | www操操| 亚洲国产精品一区二区久久hs | 国产精品99视频 | 少妇bbw撒尿 | 免费在线观看av网站 | 国产日韩欧美综合在线 | 91禁看片| 一区二区久久久久 | 91精品久久久久久久99蜜桃 | 97操碰| 亚洲欧美日韩在线一区二区 | 日韩av高清在线观看 | 丁香电影小说免费视频观看 | 国产一区二区视频在线 | 欧美福利久久 | 国产高清在线a视频大全 | 碰超在线97人人 | 天天操天天操天天操天天操天天操天天操 | 国产一区二区精品91 | 午夜av一区二区三区 | 丰满少妇对白在线偷拍 | 色噜噜噜噜 | 久久久国内精品 | 国产手机在线播放 | 色综合天天综合 | 国内外成人免费在线视频 | 91视频com | 欧美黄在线 | 日韩成人在线一区二区 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 在线观看激情av | 免费观看黄色12片一级视频 | 九草视频在线观看 | 天堂网在线视频 | 精品国产免费一区二区三区五区 | 精品国产免费一区二区三区五区 | 日本在线观看中文字幕无线观看 | 国产只有精品 | 黄色在线观看www | 久久精品伊人 | 嫩嫩影院理论片 | 精品国产视频在线观看 | 高清av免费看 | 久久国产精品视频 | 国产一区免费在线 | 中文字幕免费高清在线 | 久久久久亚洲国产 | 97电影院在线观看 | 欧美性久久久久久 | av大片免费看 | 久久免费片| a一片一级| 国产成人久久av | 精品国产1区2区 | 91日韩精品一区 | 成人99免费视频 | 亚洲成人av一区 | 免费在线成人av | 精品国产中文字幕 | 在线影院av| 亚洲精品午夜视频 | 麻豆国产精品永久免费视频 | 人人爽人人爽人人片 | 免费看国产精品 | 亚洲午夜精品在线观看 | 在线观看中文字幕2021 | 九九在线精品视频 | 性色大片在线观看 | 亚洲一区二区黄色 | 国产精品久久久久一区二区 | 国内精品视频在线播放 | 日韩v在线91成人自拍 | 玖玖在线精品 | 日韩欧美91 | 欧洲成人av | 亚洲高清视频在线观看免费 | 中文在线字幕免 | 丁香九月激情综合 | av高清一区二区三区 | av 一区二区三区四区 | 日韩久久网站 | 99国产成+人+综合+亚洲 欧美 | 伊人影院在线观看 | 天天射天天干天天 | 在线观看的黄色 | 国产91探花| 97色噜噜| 国产一区二区在线视频观看 | 激情综合电影网 | 欧美成人精品欧美一级乱黄 | 西西人体4444www高清视频 | 最新中文字幕在线资源 | 国产日韩欧美在线播放 | 久久国产区 | 91成人在线免费观看 | 色婷婷综合在线 | 欧美在线观看视频一区二区三区 | 高清精品视频 | 99产精品成人啪免费网站 | 亚洲乱码国产乱码精品天美传媒 | 国产精品久久久久久婷婷天堂 | 蜜臀av.com | 蜜臀久久99精品久久久无需会员 | 日韩午夜av | 国产一级三级 | 精品一区精品二区高清 | 久草视频在线看 | 国产特黄色片 | 欧美性色xo影院 | 美女网站黄在线观看 | 久久综合婷婷国产二区高清 | 免费亚洲视频在线观看 | 2019天天干夜夜操 | 亚洲精品视 | 国产成人精品久 | 伊人天天综合 | 99热这里只有精品8 久久综合毛片 | 激情综合网五月激情 | 欧美日韩激情视频8区 | 国产高清av免费在线观看 | www狠狠操 | 国产精品美女网站 | 一本大道久久精品懂色aⅴ 五月婷社区 | 精品一区久久 | 天天射天天干天天操 | 在线看不卡av | 天天天色综合 | 日韩中文字幕国产精品 | 免费在线观看日韩 | www.成人精品 | 亚洲精品美女在线观看播放 | 337p欧美| 青青河边草观看完整版高清 | 国产成人中文字幕 | 亚洲人人射| 精品久久久久久国产91 | 93久久精品日日躁夜夜躁欧美 | 在线观看一级片 | 久久精品国产一区二区 | 久久久久久久久久久久av | av三区在线 | 97视频资源 | 欧美日韩18 | 一区二区三区四区五区在线视频 | 久久午夜精品影院一区 | 亚洲精品网址在线观看 |