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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言再学习 -- 关键字volatile

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

上周確實事情挺多的,年會、公司聚餐,一到過年就有忙不完的事分心。還好C語言再學(xué)習(xí)總結(jié)的已經(jīng)差不多了,年前也不展開別的了,接下來這十幾天、總結(jié)幾篇典型的面試題吧。

言歸正傳,接下來看看關(guān)鍵字 volatile。


一、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 絕對對立的。它指示一個變量也許會被某種方式修改,這種方式按照正常程序流程分析是無法預(yù)知的(例如,一個變量也許會被一個中斷服務(wù)程序所修改)。這個關(guān)鍵字使用下列語法定義:

volatile data-definition;

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


volatile應(yīng)用比較多的場合,在中斷服務(wù)程序和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) {//配置相應(yīng)管腳為輸出功能 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 不使用標(biāo)準(zhǔn)庫,生成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)存訪問速度遠(yuǎn)不及CPU處理速度
,為提高機器整體性能,在硬件上引入硬件高速緩存Cache,加速對內(nèi)存的訪問。另外在現(xiàn)代CPU中指令的執(zhí)行并不一定嚴(yán)格按照順序執(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í)行的操作之間設(shè)置內(nèi)存屏障(memory barrier),Linux 提供了一個宏解決編譯器的執(zhí)行順序問題。
void Barrier(void)
這個函數(shù)通知編譯器插入一個內(nèi)存屏障,但對硬件無效,編譯后的代碼會把當(dāng)前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ù)。當(dāng)要求使用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、并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器)

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

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

int *output = (unsigned int *)0xff800000;//定義一個IO端口; int init(void) {int i;for(i=0;i< 10;i++){*output = i; } } 經(jīng)過編譯器優(yōu)化后,編譯器認(rèn)為前面循環(huán)半天都是廢話,對最后的結(jié)果毫無影響,因為最終只是將output這個指針賦值為 9,所以編譯器最后給你編譯編譯的代碼結(jié)果相當(dāng)于:

int init(void) {*output = 9; } 如果你對此外部設(shè)備進行初始化的過程是必須是像上面代碼一樣順序的對其賦值,顯然優(yōu)化過程并不能達(dá)到目的。反之如果你不是對此端口反復(fù)寫操作,而是反復(fù)讀操作,其結(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) {//配置相應(yīng)管腳為輸出功能 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 不使用標(biāo)準(zhǔn)庫,生成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、一個中斷服務(wù)子程序中會訪問到的非自動變量(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副本”,導(dǎo)致 dosomething 永遠(yuǎn)也不會被調(diào)用。如果將變量加上 volatile 修飾,則編譯器保證對此變量的讀寫操作都不會被優(yōu)化(肯定執(zhí)行)。此例中i也應(yīng)該如此說明。


3、多線程應(yīng)用中被幾個任務(wù)共享的變量

當(dāng)兩個線程都要用到某一個變量且該變量的值會被改變時,應(yīng)該用 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的值永遠(yuǎn)不會變成FALSE,加上volatile,程序在執(zhí)行時,每次均從內(nèi)存中讀出bStop的值,就不會死循環(huán)了。


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

volatile 常見的幾個面試題

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

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

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

可以,當(dāng)一個中服務(wù)子程序修改一個指向一個 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)定訪問

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

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

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

91久久精品一区二区二区 | 午夜三级毛片 | 国产精品久久影院 | 美女免费视频黄 | 久久福利在线 | 国产精品精品国产 | 欧美色综合 | 日本三级久久 | 中文字幕 在线看 | 午夜电影久久久 | 中文字幕av日韩 | 日韩精品一区二区在线观看 | 91九色在线观看视频 | 成人app在线播放 | 国产亲近乱来精品 | 久久xx视频| 国产精品夜夜夜一区二区三区尤 | 久久永久免费视频 | 91欧美精品 | 中文免费在线观看 | 黄色小网站免费看 | 日本精品视频一区二区 | 久草电影网 | 在线视频app | 激情欧美在线观看 | 午夜精品久久久 | 国产视频首页 | 中文字幕一区二区三区在线观看 | 国产精品久久电影网 | 麻豆一区二区三区视频 | 黄色三级网站 | 99精品一级欧美片免费播放 | 久久国产精品99久久久久久丝袜 | 欧美午夜久久 | 性色av免费看 | 中文字幕麻豆 | 成年人天堂com | 色多多污污在线观看 | 久久经典国产视频 | 日韩网站在线观看 | 久久久av免费 | 热99在线视频| 日日干夜夜操视频 | 国产明星视频三级a三级点| 欧美a√在线 | 日韩大片免费观看 | 91成人在线观看高潮 | 97成人精品区在线播放 | 国产xxxx做受性欧美88 | 国产一级淫片免费看 | 中文在线a∨在线 | 玖玖爱免费视频 | 日韩av电影中文字幕 | 国产精品av免费在线观看 | 欧美激情综合五月 | 四虎在线免费观看 | 在线不卡中文字幕播放 | 欧美aa级 | 久草视频免费播放 | 欧美日韩久久一区 | 久久免费黄色 | 99在线播放 | 在线观看日韩免费视频 | 国产黄色在线 | 在线视频 国产 日韩 | 成年人在线电影 | 免费色视频网址 | 伊人看片| 日韩色综合网 | 久久婷婷影视 | 免费看的黄网站软件 | 一区二区中文字幕在线观看 | 三级动态视频在线观看 | 久久久午夜电影 | 国产精品久久久av久久久 | 美女视频黄是免费的 | 999视频网站 | 免费a一级 | 91av福利视频 | 免费在线看v | 91香蕉视频720p | 操天天操 | 又色又爽又黄 | av在线电影免费观看 | 国产高清视频在线播放 | 欧美激情第一区 | 婷婷久月| 久草视频中文在线 | 在线观看中文字幕2021 | 国产美女网站视频 | 午夜精品久久久久久久99水蜜桃 | 欧美在线视频二区 | 亚洲片在线资源 | 超碰资源在线 | 96超碰在线 | 欧美福利视频一区 | www日日夜夜| 黄色精品久久久 | 婷婷视频导航 | 欧亚日韩精品一区二区在线 | 精品成人在线 | 波多野结衣视频网址 | 国产精品永久久久久久久久久 | 一区二区三区日韩在线 | aaa毛片视频 | 91日韩精品一区 | 国产精品免费不卡 | 亚洲欧美国产日韩在线观看 | 久久免费资源 | 国产在线资源 | 欧美日韩免费一区二区三区 | 麻豆国产精品视频 | 久久视频国产 | 91欧美视频网站 | 久久久久久久久久久免费av | 成年人免费在线观看 | 精品国产一区二区三区久久影院 | 米奇影视7777 | 精品亚洲国产视频 | 国产精品久久久久久久毛片 | 久久66热这里只有精品 | 国产精品1区2区3区 久久免费视频7 | 在线观看免费av片 | 日本中文字幕一二区观 | 久久久久国产一区二区三区四区 | 国产 成人 久久 | 丁香花在线视频观看免费 | 久久综合婷婷 | 一区二区精品在线 | 最近免费中文视频 | 国产黄在线免费观看 | 精品国产欧美一区二区三区不卡 | 91精品国自产拍天天拍 | 黄影院 | 激情五月婷婷激情 | 欧美一区二区在线 | 看av免费 | 日韩一区二区三区高清免费看看 | 午夜三级福利 | 亚洲精品久久久久久久不卡四虎 | 中文字字幕在线 | 国产不卡在线观看 | 国产69久久久欧美一级 | 国产精品一区二区在线免费观看 | 国产精品不卡 | 欧美在线视频a | 不卡av免费在线观看 | 日本动漫做毛片一区二区 | 最新av电影网址 | 色妞色视频一区二区三区四区 | 在线黄色国产 | 国产精品一区二区三区电影 | 成人丁香花 | 国产精品亚 | 久久精品视频播放 | 91免费网站在线观看 | 九九色综合 | 色吊丝在线永久观看最新版本 | 亚洲成人精品在线观看 | 99这里只有久久精品视频 | 不卡的av | 国产精品专区一 | 国产九九精品视频 | 91丨九色丨蝌蚪丨对白 | 蜜臀av免费一区二区三区 | 日韩啪啪小视频 | 成年人电影免费在线观看 | 在线看片a | 91国内在线 | 最近日本mv字幕免费观看 | 色婷婷综合久久久 | 亚洲最大激情中文字幕 | av在线播放免费 | 99精品在线免费 | 最新在线你懂的 | 日本一区二区三区免费看 | 婷婷激情久久 | 日韩中文字幕免费 | 亚洲成人av免费 | 国产一级片不卡 | 久久久色 | 狠狠操操操 | 久久爱综合 | 亚洲欧洲久久久 | 日韩视频在线观看视频 | 日韩精品视频免费 | 最近的中文字幕大全免费版 | 五月婷婷开心 | 在线黄色免费av | 欧美另类xxxx | 国产流白浆高潮在线观看 | 在线成人看片 | 欧美精选一区二区三区 | 狠狠的日日 | 视频一区在线免费观看 | 久久69精品久久久久久久电影好 | 超碰97久久 | sesese图片 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久99国产精品久久 | 国产精品高清免费在线观看 | 中国一级片在线播放 | 免费电影播放 | 国产在线小视频 | 亚洲一级理论片 | 久久久免费看片 | 国产综合片 | 国产乱码精品一区二区蜜臀 | 国内精品久久久久影院一蜜桃 | 精品在线亚洲视频 | 久久久精选 | 国产精品乱码一区二三区 | 亚洲精品观看 | 激情综合色播五月 | 国产午夜精品一区二区三区欧美 | 免费高清影视 | 91香蕉久久 | 久久久久久久久久免费 | 亚洲视频一区二区三区在线观看 | 亚洲三级影院 | 99免费在线观看视频 | 最新超碰在线 | 国产玖玖精品视频 | 亚洲国产精品影院 | 亚洲激情网站免费观看 | 国产1级视频 | 一区在线观看 | 国产精品日韩久久久久 | 久久久wwww| 中文字幕在线视频第一页 | 九色免费视频 | 就操操久久 | 91精品视频导航 | 免费看黄的 | 亚洲日日夜夜 | 天天操天天色天天 | 黄色精品国产 | 伊人天堂av| 成人一区二区三区在线观看 | 精品999久久久 | 欧美激情视频一区二区三区 | av福利免费 | 69夜色精品国产69乱 | 久久精品日产第一区二区三区乱码 | 热久久视久久精品18亚洲精品 | 久久撸在线视频 | 日韩视频一区二区三区在线播放免费观看 | 六月色 | 97在线观看免费视频 | 欧美久久九九 | 亚洲精品视频免费看 | 国产日韩中文字幕 | 成人午夜精品久久久久久久3d | 久久亚洲婷婷 | 91黄色小视频 | 人人看人人爱 | 国产精品一区二区在线观看 | 人人插人人做 | 96av麻豆蜜桃一区二区 | 国产成人一区二区精品非洲 | 九九热精| 久久永久视频 | 99视频偷窥在线精品国自产拍 | 久久一区91 | 成人久久精品视频 | 久操伊人 | 国产精品一区久久久久 | 青青草国产免费 | 欧美一二三专区 | 中文字幕久久久精品 | 99久久精品国产免费看不卡 | 97看片网 | 亚洲午夜av电影 | 国产一级淫片免费看 | 亚洲成av | 久久任你操 | 国产精品美女免费 | 久久精品视频观看 | 天天综合区 | 五月激情电影 | 午夜国产福利在线 | 精品免费国产一区二区三区四区 | 亚洲天堂网在线播放 | 中文字幕在线观看免费 | 91tv国产成人福利 | 激情视频在线高清看 | av手机版 | 又黄又爽的视频在线观看网站 | 天天综合日日夜夜 | av不卡中文字幕 | 欧美视频在线二区 | 国产中文字幕在线免费观看 | 精品国产123 | 久久艹精品 | 色丁香久久 | 婷婷综合 | 五月综合网 | 狠狠色狠狠色终合网 | 日本久草电影 | 国产免费人人看 | 青青河边草手机免费 | 人人人爽 | 成人v| 在线观看视频黄 | 91色九色 | 欧美另类巨大 | 69xx视频 | 在线免费看黄色 | 国产99免费视频 | 在线观看亚洲成人 | 在线观看中文字幕dvd播放 | 成人国产网站 | av解说在线| a级国产乱理论片在线观看 伊人宗合网 | 久久久www成人免费毛片 | 亚洲国产精品久久 | 最近最新mv字幕免费观看 | 四虎国产精品成人免费4hu | 久久国产精品免费一区二区三区 | 色.www| 亚洲精品国产视频 | 日韩精品免费在线观看 | 九七在线视频 | 久久成人精品视频 | 国产视频一区在线免费观看 | 激情伊人五月天久久综合 | 亚洲成人网在线 | 国产91在线播放 | 欧美大香线蕉线伊人久久 | 麻豆国产精品视频 | 娇妻呻吟一区二区三区 | 日本性动态图 | 久久网站免费 | 日本xxxx裸体xxxx17 | 在线网站黄 | 亚洲精品国产视频 | 色网站在线看 | 国产特级毛片aaaaaa毛片 | 精品女同一区二区三区在线观看 | 亚洲国产中文字幕 | 精品亚洲视频在线观看 | 日韩欧美高清免费 | www.888.av| 在线观看av黄色 | 国产精品毛片一区视频播不卡 | 在线最新av | 久99热| bbbbb女女女女女bbbbb国产 | 精品国产一区二区三区免费 | 成年人在线免费看 | 日韩精品免费一区二区在线观看 | 99热在线精品观看 | 色视频在线观看 | 欧美日韩免费网站 | 91秒拍国产福利一区 | 亚洲专区中文字幕 | 4438全国亚洲精品在线观看视频 | 精品视频网站 | 国内精品视频在线 | 精品久久久久久久久久久久久 | 天堂网av在线 | 一区二区三区在线视频111 | 成年人在线看视频 | 涩涩色亚洲一区 | 三级av免费观看 | 国产在线观看av | 92精品国产成人观看免费 | 午夜精品一区二区三区可下载 | 久久艹在线 | 婷婷色网视频在线播放 | 欧美日韩高清在线一区 | 日韩高清二区 | 精选久久 | 亚洲日本一区二区在线 | 欧美乱熟臀69xxxxxx | 日韩欧美xxx | 2021国产视频 | 自拍超碰在线 | 99久久99久久精品国产片 | 黄色a一级片 | 欧美成人h版在线观看 | 国产在线观看免费 | 国产破处在线播放 | 国内精品久久久久久久久久 | 精品久久网| 成人免费xxx在线观看 | 97精品一区二区三区 | 玖玖精品在线 | 久草观看| 国产精品v欧美精品 | 国产在线观看网站 | 国产精品成人一区二区三区吃奶 | 98超碰在线 | 色婷婷激情电影 | 亚洲午夜精品一区二区三区电影院 | 91成人精品一区在线播放 | 久久久久久久久久久免费视频 | 成人一级片在线观看 | 一区二区久久 | 不卡电影免费在线播放一区 | 国产黄a三级三级三级三级三级 | 亚洲少妇自拍 | 日韩精品免费一区二区 | 成人在线视频观看 | 亚洲dvd | 日韩一区在线播放 | 综合影视| 中文字幕免费国产精品 | 日本久久影视 | 2023国产精品自产拍在线观看 | 色婷婷伊人| 天堂在线一区 | 亚洲高清色综合 | 在线国产一区 | 欧美性生活一级片 | 日韩免费观看一区二区三区 | 91在线播 | 午夜av在线| 成人一区不卡 | avav99| www色婷婷com| 国内精品二区 | 亚洲视频高清 | 国产精品美女免费看 | 天天射天天舔天天干 | 国产99免费| 久久视频免费 | 久久久天堂 | 中文字幕av在线电影 | 成人久久久久久久久久 | 狠狠干狠狠久久 | 欧美色精品天天在线观看视频 | 日韩精品久久中文字幕 | 国产精品1000 | 婷婷丁香激情综合 | 国产分类视频 | 亚洲精品国产精品国自产观看 | 国产超碰在线观看 | 91视频91自拍 | 五月婷婷一区二区三区 | 麻豆影音先锋 | 国产69精品久久久久99尤 | 国产精品成人一区二区三区吃奶 | 成人午夜影视 | 久久久精品 一区二区三区 国产99视频在线观看 | 狠狠综合久久av | 精品影院 | 久久看毛片 | 99精品国产99久久久久久福利 | 免费在线观看av的网站 | 91久久国产露脸精品国产闺蜜 | 欧美日韩中文字幕在线视频 | 国内外成人免费在线视频 | 日韩亚洲在线 | 91视频一8mav| 日韩精品国产一区 | av免费网站在线观看 | 一区二区三区高清在线观看 | 91视频最新网址 | 国产精品一区二区久久国产 | 欧美人牲 | 欧美日韩性视频在线 | 激情小说网站亚洲综合网 | 色 中文字幕 | 天天干天天射天天爽 | 国产高清在线免费观看 | 国产精品嫩草影视久久久 | 九九热在线观看 | 久久国产精品一区二区三区 | 成人av电影免费观看 | 国产精品免费观看国产网曝瓜 | av片无限看 | 亚洲精品成人在线 | 国产色女| 成年人电影毛片 | 免费看一级一片 | 欧美性成人 | 免费av免费观看 | 国产福利91精品一区 | 青青草国产成人99久久 | 国产人成一区二区三区影院 | 天天射综合 | 国产精品久久久久久久久久新婚 | 婷婷天天色 | 探花视频在线观看+在线播放 | 友田真希x88av | 色www精品视频在线观看 | 成人在线视频你懂的 | 日韩网站一区二区 | 成人手机在线视频 | 国产特黄色片 | 久久婷婷精品 | 国产区第一页 | 亚洲综合欧美激情 | 在线午夜av | 国产一区在线免费观看视频 | 91在线中字 | 你操综合 | 国产一区二区久久久久 | 欧洲视频一区 | 日本aaa在线观看 | 国产精品久久久久久久99 | 91免费视频国产 | 奇米777777| 国产成人精品一区二区三区福利 | 另类老妇性bbwbbw高清 | 色婷婷综合久久久久中文字幕1 | 欧美日韩亚洲在线观看 | 亚洲欧美视频在线播放 | 日本性动态图 | 国产资源av| 亚洲精欧美一区二区精品 | 香蕉影视在线观看 | 成人一级片免费看 | 亚洲精品97 | 国产69精品久久久久久 | 亚州激情视频 | 国产中文在线观看 | 久久精品高清视频 | 亚洲精品在 | 久久人人爽爽 | 网址你懂的在线观看 | 欧亚日韩精品一区二区在线 | 欧美成人91 | 国产视频一区二区在线 | 成年人视频在线 | 69精品久久 | 久久久久99精品国产片 | 性色av香蕉一区二区 | 成人av一区二区兰花在线播放 | 96久久久| 六月丁香婷 | 456免费视频| av导航福利 | 久久午夜影视 | 超级碰99 | 天堂中文在线视频 | 国产中文字幕视频在线观看 | 日韩一区在线免费观看 | 亚洲a在线观看 | 亚洲日韩欧美一区二区在线 | 中文字幕激情 | 国产成人三级三级三级97 | 国产精品一区二区在线观看免费 | 国产精品久久久久永久免费 | 久热精品国产 | 国产精品久久久久久久久久久久午 | 一级黄色片在线免费看 | 久久免费试看 | 国产精品一区二区果冻传媒 | 在线观看视频国产一区 | 欧美一区二区三区免费看 | 国产资源网 | 成人影视免费看 | 午夜精品视频福利 | 热久久免费国产视频 | 久久在现 | www.超碰| 97夜夜澡人人爽人人免费 | 国产一级特黄电影 | 久久毛片网站 | 五月婷婷在线观看视频 | 久久的色 | 午夜国产福利在线 | 欧美一级艳片视频免费观看 | 国产高清无av久久 | 亚洲一区二区高潮无套美女 | 国产色拍拍拍拍在线精品 | 日本激情视频中文字幕 | av成人动漫 | 超碰人人在线观看 | 丝袜美女在线观看 | 日本高清久久久 | 99久久99视频 | 亚洲电影成人 | 在线观看视频免费播放 | 久久尤物电影视频在线观看 | 天天色棕合合合合合合 | 男女激情麻豆 | 亚洲午夜激情网 | 27xxoo无遮挡动态视频 | 国产精品一区二区美女视频免费看 | 久久专区 | 国产视频在线观看一区二区 | 最新av网址大全 | 天天爱天天操天天干 | 国产精品久久久久久久久久ktv | 亚洲欧美国产精品久久久久 | 欧美黑吊大战白妞欧美 | 色网站在线免费 | 国产手机视频在线观看 | 久久久久国产一区二区三区四区 | 国产69久久精品成人看 | 婷婷色综合 | 婷婷深爱五月 | 韩国一区二区三区视频 | 免费在线观看亚洲视频 | 久久九九免费视频 | www.夜夜爱 | 黄网站色成年免费观看 | 97人人模人人爽人人少妇 | www.99av| 亚洲美女视频在线 | 天天干天天上 | 国产又粗又长又硬免费视频 | 久久精品一区八戒影视 | 韩日在线一区 | 国产精品亚| 国产精品mv | 麻豆视频观看 | 手机在线看片日韩 | 日本精a在线观看 | 色亚洲激情| 色视频在线看 | 色婷婷综合在线 | 午夜精品影院 | 国产在线91在线电影 | 国产色在线 | 日日摸日日爽 | 亚洲最新视频在线 | 黄色片视频在线观看 | 天天干天天干天天射 | 激情大尺度视频 | 欧美精品一区在线发布 | 黄色小说在线观看视频 | 久久伊人免费视频 | 久久资源在线 | 成人在线观看你懂的 | 一级做a爱片性色毛片www | 欧美91精品久久久久国产性生爱 | 人人盈棋牌 | 亚洲国产视频网站 | 亚洲精品一区二区三区四区高清 | 国产婷婷视频在线 | 最新91在线视频 | 久99久久| 国内成人精品2018免费看 | 蜜桃视频在线视频 | 综合久久久久久久久 | 一区二区欧美激情 | 美女视频久久 | 亚洲国产播放 | 欧美色噜噜噜 | 午夜精品久久久99热福利 | 日韩电影在线观看一区二区 | 免费观看国产成人 | 久久精品99国产精品亚洲最刺激 | 国产三级午夜理伦三级 | 九九九电影免费看 | 91自拍视频在线 | 亚州av网站 | 精品国产_亚洲人成在线 | 激情网第四色 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产一级大片免费看 | 在线观看中文字幕第一页 | 精品日韩在线一区 | 日本久久视频 | 奇米影视777四色米奇影院 | 色婷婷狠狠五月综合天色拍 | 久久免费av电影 | 欧洲一区二区三区精品 | 久久精品视 | 亚洲免费不卡 | 久久久久国产成人精品亚洲午夜 | 精品久久精品久久 | 久久久久久久久久久久久久av | 国产玖玖精品视频 | 国产亚洲资源 | 成人免费观看网站 | 成人h动漫在线看 | 国产精品中文字幕av | 国产成人a v电影 | 国产中文字幕三区 | 天堂在线免费视频 | 在线视频专区 | 久久精品视频5 | 欧美日韩一级久久久久久免费看 | 探花视频免费在线观看 | 日韩三级一区 | 97超碰人人模人人人爽人人爱 | 啪啪动态视频 | 天天操天天操天天 | 不卡中文字幕在线 | 97国产一区二区 | 99视频国产精品免费观看 | 精品国产aⅴ麻豆 | 深爱激情站 | 免费试看一区 | 久久艹在线观看 | 婷婷六月综合亚洲 | 久久久99精品免费观看app | 高清不卡毛片 | 日本动漫做毛片一区二区 | 国产日韩精品一区二区三区在线 | 日p视频 | 天堂av官网 | 中文字幕一区二 | 在线高清一区 | 在线免费色 | 最新av电影网址 | 黄色aaa毛片 | 插插插色综合 | av在线网站观看 | 欧美91片 | 天天插天天色 | 久草电影网| 91视频免费观看 | 国产精品久久网 | 美女久久99 | 国产成人在线免费观看 | 狠狠色噜噜狠狠狠 | 五月天久久久久 | 亚洲情影院 | 91视频首页| 亚洲国产精品日韩 | 久在线观看 | av在线影视| 久久国产精品视频观看 | 中文字幕一区二区三区久久 | 国产又黄又硬又爽 | 色99中文字幕 | 黄色av成人在线观看 | 精品国产人成亚洲区 | 中午字幕在线观看 | 中文字幕在线影视资源 | 亚洲国产操 | 久久99视频精品 | 亚洲国产精品电影在线观看 | 久久99热国产 | 成人精品一区二区三区中文字幕 | 五月天久久 | 青青河边草免费直播 | 国产免费观看久久黄 | 麻豆国产网站 | 亚洲理论片 | 亚洲人成影院在线 | 婷婷六月天丁香 | 中字幕视频在线永久在线观看免费 | 黄色小网站在线观看 | 最新日韩在线观看 | 91色综合| 在线观看日韩专区 | 国产在线观看,日本 | 国产黄色片久久 | 蜜臀一区二区三区精品免费视频 | 一个色综合网站 | 在线网址你懂得 | 东方av在| 波多野结衣一区二区 | 国产精品中文字幕在线播放 | 久久五月精品 | 91精品国产自产91精品 | 天堂av网址| 99热国内精品 | 色综合天天在线 | 五月天综合网站 | 日韩网站中文字幕 | 欧洲激情综合 | 国产精品久久久久久久午夜 | 亚州国产精品 | 亚洲三级影院 | 亚洲精品玖玖玖av在线看 | av免费在线观看1 | 久久高清视频免费 | 久久久久网址 | 成年免费在线视频 | 91精品国产高清 | 婷婷成人亚洲综合国产xv88 | 黄色小说免费观看 | 日本女人在线观看 | 国产香蕉97碰碰久久人人 | 国产一区二区三区免费视频 | 中文字幕一区二区三 | 国产日本三级 | 久草精品视频 | 国产一级片免费观看 | 91麻豆精品国产自产在线游戏 | 久久成人人人人精品欧 | 色婷丁香 | 成人国产网址 | 99人成在线观看视频 | 四虎在线影视 | 超碰在线cao| av在线中文| 日本精品在线 | 91久久人澡人人添人人爽欧美 | aaa亚洲精品一二三区 | 免费色视频在线 | 丁香一区二区 | av在线进入 | 久草热久草视频 | av成人免费在线观看 | 久久久久亚洲最大xxxx | 成人在线免费观看网站 | 天天天天天天天天操 | 色婷婷亚洲婷婷 | 国产在线播放一区二区三区 | 国内精品久久久久影院男同志 | 精品国产激情 | 日本动漫做毛片一区二区 | 欧美老少交 | 久久中文字幕导航 | 免费在线观看av电影 | 日韩在线观看不卡 | 国产黄色一级片 | 黄色片网站大全 | 欧美日韩在线视频观看 | 久久久久www | 亚洲91精品在线观看 | 亚洲精品国精品久久99热一 | 婷婷久月 | 欧美日韩精品二区第二页 | 韩日三级在线 | 久久99久国产精品黄毛片入口 | 五月开心激情 | 亚洲国产成人高清精品 | 精品国产一区二区三区久久久久久 | 少妇bbw揉bbb欧美 | 久久综合色综合88 | 美女视频一区二区 | 亚洲 精品在线视频 | 午夜精品久久久久 | 天天爱天天操 | 天堂av网址 | 成人蜜桃| 国产剧在线观看片 | 奇米影视8888在线观看大全免费 | 欧美一级黄色网 | 国产精品日韩欧美 | 激情视频在线观看网址 | 在线看中文字幕 | 亚洲高清视频在线观看免费 | 国产精品www | 国产精品资源网 | 国产精品久久久久久久久久东京 | 欧美了一区在线观看 | 美女一二三区 | 成人黄色毛片视频 | 欧洲视频一区 | 色综合亚洲精品激情狠狠 | 一级c片 | 久久免费视频网站 | 婷婷六月天在线 | 久久av一区二区三区亚洲 | 国产日韩欧美在线免费观看 | 亚洲一区二区三区四区精品 | 成年人免费看片网站 | 午夜电影av | 日韩va欧美va亚洲va久久 | 五月天婷婷视频 | 天天狠狠干| 日韩国产精品毛片 | 亚洲一区免费在线 | 国产精品影音先锋 | 亚洲在线a | 国产精品久久麻豆 | av大片免费看 | 亚洲精选视频在线 | 日日夜夜噜噜噜 | 欧美精品久久久久久久 | 91精品国产乱码在线观看 | 亚洲jizzjizz日本少妇 | 99久久精品国产毛片 | 狠狠色噜噜狠狠狠狠 | 九九热在线精品 | 成人黄色大片 | 久久av电影 | 成人动态视频 | www.色五月 | 人人爱天天操 | 99精品福利视频 | 日韩动态视频 | 久草观看| www日| 国产精品久久久久久久久久久久午夜片 | 玖玖在线资源 | 亚洲欧洲国产日韩精品 | 五月激情电影 | 久久精品婷婷 | 91秒拍国产福利一区 | 婷婷香蕉 | 亚洲欧美日韩精品久久奇米一区 | a天堂一码二码专区 | 91成人在线免费观看 | 欧美婷婷综合 | 国产一区在线观看视频 | 欧美日本高清视频 | 国产精品黑丝在线观看 | 国产精品1区2区3区在线观看 | 亚洲特级片 | 久久久国产在线视频 | 日韩高清免费无专码区 | 这里只有精彩视频 | 亚洲日本精品视频 | 国产精品久久亚洲 | 日韩久久久久久久久久 | 国产精品麻豆视频 | 久久九九精品久久 | 天天色棕合合合合合合 | 久久久国产精品视频 | 免费在线一区二区三区 | 亚洲成人av电影在线 | 激情婷婷六月 | 少妇性xxx | av片在线看 | 中文字幕在线观看2018 | 日韩精品影视 | 中国一区二区视频 | 精品在线观看一区二区 | 久久国产精品一区二区三区 | 视频在线观看日韩 | 超碰人人舔 | 亚洲夜夜综合 | 亚洲精品视频免费在线观看 | 久草免费在线 | 欧美激情精品久久久久久变态 | av一本久道久久波多野结衣 | 国产精品久久久久久麻豆一区 | 狠狠综合久久 | 日韩av看片| 国产91精品看黄网站 | 综合网av | www国产精品com | 黄色免费高清视频 | 久久国产精品视频观看 | 性色av免费观看 | 天天曰天天曰 | 欧美激情精品久久久久久免费印度 | 麻豆传媒在线视频 | 天天综合网天天 | 精品视频99 | 婷婷色中文| 深爱激情站 | 欧美日韩伦理一区 | 亚洲国产黄色 | 国产高清黄色 | 亚洲色图激情文学 | 免费观看性生交大片3 | 国产又粗又猛又色又黄网站 | 国产精品毛片久久久久久 | 欧美日韩精品电影 | 国产精品国内免费一区二区三区 | 日韩18p| 韩国av一区二区 | 成人av日韩| 插婷婷| 夜夜躁狠狠燥 | 国产涩涩网站 | 91色在线观看视频 | 日韩sese| 中文视频在线看 | 黄色三几片 | 久久99精品久久久久婷婷 | 国产高清在线免费观看 | 久久午夜电影网 | 国产自在线观看 | 四虎在线视频 | 欧美国产日韩一区 | 成人免费网视频 | 亚洲视频六区 | 免费福利在线观看 | 成年人免费在线观看网站 | 久久免费观看少妇a级毛片 久久久久成人免费 | 日韩欧美大片免费观看 | 欧美日韩国产一区二区三区 | 在线看小早川怜子av | 韩国av免费 | 午夜av一区| 久久精品日韩 | 丁香六月天 | av丝袜美腿 | 日韩成人精品在线观看 | 性色av免费在线观看 | 丁香五香天综合情 | 婷婷六月丁香激情 | 亚洲另类xxxx| 在线观看aa | 亚洲精品h | 久久亚洲私人国产精品 | 天天色天天操天天爽 | 亚洲精品高清在线观看 | 五月婷婷视频在线观看 | 日韩在线视频一区 | 国产看片网站 | 最新高清无码专区 | 久久精品一二三区白丝高潮 | 日韩v在线91成人自拍 | 91免费的视频在线播放 | 国产视频精品久久 | 国产成a人亚洲精v品在线观看 | 九色自拍视频 | 丁香激情五月婷婷 | www.看片网站 | 丁香电影小说免费视频观看 | 91探花在线视频 | 激情综合久久 | 在线播放日韩 |