那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

教你如何輕松寫(xiě)單片機(jī)的指針

凡億PCB ? 來(lái)源:果果小師弟 ? 作者:果果小師弟 ? 2021-06-17 16:08 ? 次閱讀

摘要:大家想過(guò)沒(méi)有我們用keil寫(xiě)單片機(jī)的代碼,你的函數(shù)啊、變量啊最終都放在了哪里?我們一直說(shuō)的內(nèi)存五區(qū),到底是哪五區(qū)?到底放在芯片的哪個(gè)地方呢?還有為什么你學(xué)完C語(yǔ)言指針和結(jié)構(gòu)體,32單片機(jī)里面的關(guān)于結(jié)構(gòu)體指針的內(nèi)容還是搞不清楚呢?如果你有這些問(wèn)題,今天就帶你研究研究!

這張圖學(xué)過(guò)STM32單片機(jī)的小伙伴應(yīng)該都不陌生,我們看到的STM32芯片已經(jīng)是已經(jīng)封裝好的成品,主要由內(nèi)核和片上外設(shè)組成。若與電腦類(lèi)比,內(nèi)核與外設(shè)就如同電腦上的CPU與主板、內(nèi)存、顯卡、硬盤(pán)的關(guān)系。芯片和外設(shè)之間通過(guò)各種總線連接。連接被控總線的是FLASH,RAM和片上外設(shè),這些功能部件共同排列在一個(gè)4GB的地址空間內(nèi)。上面這些張圖是STM32F40XXX系列單片機(jī)的內(nèi)存地址映射圖。

我們的代碼就是放在Flash里面(0x8000000~0x80FFFFF)。代碼就是你寫(xiě)得各種函數(shù),而在程序中聲明的各種變量都放在RAM中,局部變量就是在函數(shù)運(yùn)行完空間釋放,全局變量就是程序運(yùn)行完了再釋放,可以這樣簡(jiǎn)單的理解。

CPU使用的變量是存儲(chǔ)在RAM里面的,要問(wèn)我RAM是啥,RAM就是個(gè)芯片。就是上圖的Block1的SRAM區(qū)。CPU是通過(guò)導(dǎo)線和RAM芯片連接的,然后可以通過(guò)導(dǎo)線往RAM芯片里面存儲(chǔ)數(shù)據(jù)和讀數(shù)據(jù)。首先RAM需要有個(gè)一開(kāi)始的地址,對(duì)于STM32單片機(jī)來(lái)說(shuō)開(kāi)始地址是0x20000000,要問(wèn)我為啥要規(guī)定地址。只有規(guī)定了地址CPU才好對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),要是沒(méi)有地址,瞎幾把存,瞎幾把取。。.。。.

1、變量1.定義一個(gè)int型的變量,通過(guò)打印可以看到這個(gè)變量存儲(chǔ)的地址是:0x20000000。這也證明了我們內(nèi)存的首地址是0x20000000。我們定義的value變量就放在這里。

3aea0c10-ca98-11eb-9e57-12bb97331649.png

3b100280-ca98-11eb-9e57-12bb97331649.png

2.再定義一個(gè)變量

通過(guò)打印可以看到這個(gè)變量存儲(chǔ)的地址是:0x20000004。因?yàn)閕nt類(lèi)型在內(nèi)存中占據(jù)4個(gè)字節(jié),所以第二個(gè)變量就存放在0x20000004這個(gè)地方。

3b1f7e2c-ca98-11eb-9e57-12bb97331649.png

綜上所述,定義的兩個(gè)變量在內(nèi)存里面是下面這樣子。

0x2000 0000地址里面存儲(chǔ)的是 0

0x2000 0004地址里面存儲(chǔ)的是 1

2、指針變量定義指針其實(shí)和定義變量一樣的,只不過(guò)變量名前頭有個(gè)*

下面就定義一個(gè)int型的指針變量,變量的名字是p。然后有人會(huì)問(wèn),為啥變量名字前面加個(gè)*就是指針了?

答:搞C語(yǔ)言那幫家伙們規(guī)定的。

定義指針和定義變量一樣,然后可以定義各種類(lèi)型的。

然后記住一句話:

“指針這個(gè)變量是存變量的地址的! 指針這個(gè)變量是存變量的地址的! 指針這個(gè)變量是存變量的地址的!”所以給指針賦值自然是把變量的地址給它。

#include “sys.h”#include “led.h”#include “delay.h”#include “usart.h”int value = 0;

int value2 = 1;

int *p;

int main(void)

{

uart_init(115200);

delay_init();

p=&value;//把變量value的地址復(fù)制給這個(gè)指針

printf(“Address of a: %p

”,p);//打印下這個(gè)指針指向的地址

while(1)

{

}

}

一般什么類(lèi)型的指針變量就應(yīng)該賦值什么類(lèi)型變量的地址。如再定義個(gè)char型

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”int value = 0;

int value2 = 1;

int *p;//定義一個(gè)指針char value3=1;

char *q;

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

p=&value;//把變量value的地址復(fù)制給這個(gè)指針

q=&value3;//把變量value的地址復(fù)制給這個(gè)指針

printf(“Address of a: %p

”,q);//打印下這個(gè)指針指向的地址

while(1)

{

}

}

那些規(guī)定C語(yǔ)言的大佬弄出來(lái)指針這個(gè)玩意有啥用?

3、指針有啥用?1.咱先使用下指針,然后具體有啥用就自己體會(huì)了。前面咱把一個(gè)變量的地址賦值給了指針了,然后搞C語(yǔ)言的那幫家伙們又規(guī)定。*{指針變量名} :代表了這個(gè)指針?biāo)赶虻淖兞俊?/p>

啥意思呢?

對(duì)照下面的程序p=&value,p記錄的就是變量value的地址, 然后*p就代表value。

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”int value = 0;

int *p;//定義一個(gè)指針

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

p=&value;//把變量value的地址復(fù)制給指針變量p

printf(“Address of a: %d

”,value);

printf(“Address of b: %d

”,*p);

while(1)

{

}

}

3bdfdb54-ca98-11eb-9e57-12bb97331649.png

有人會(huì)想。。.。。.就這?

有人覺(jué)得多此一舉?

其實(shí)我一開(kāi)始也是這樣想的。。.。。.

既然 * p就代表value,那么* p=XXXX

不就是相當(dāng)于value=XXXX

看看下面這個(gè)例子

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”int value = 0;

int *p;//定義一個(gè)指針 int main(void)

{

uart_init(115200);//串口初始化

delay_init();

p=&value;//把變量value的地址復(fù)制給指針變量p

printf(“value of a: %d

”,value);

*p=520;

printf(“value of b: %d

”,value);

while(1)

{

}

}

還是沒(méi)感覺(jué)到指針有啥用?別著急,先把基本的知識(shí)點(diǎn)學(xué)完哈。沒(méi)有最基本的知識(shí)儲(chǔ)備是不可以的,因?yàn)楹穹e而薄發(fā)!

見(jiàn)過(guò)返回值是指針的函數(shù)沒(méi)?

4、函數(shù)指針先看一下,如果感覺(jué)不理解就接著往下看

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”int value = 0;

int *p;//定義一個(gè)指針

int *function(void)

{

return &value;//把value的地址返回

}

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

p=function();//調(diào)用函數(shù),其實(shí)就是把value的地址賦值給了p

printf(“Address1 of a: %p

”,&value);//打印value的地址

printf(“Address2 of a: %p

”,p);//打印p所代表的地址

while(1)

{

}

}

很多人用過(guò)返回值是int、char的函數(shù),但是在int,char 后面加個(gè)*

估計(jì)對(duì)于初學(xué)者沒(méi)有用過(guò)。其實(shí)就是指針之間賦值。下面就是把p(int*類(lèi)型的指針) 代表的地址賦值給q

變量之間可以互相賦值吧,指針之間也一樣,可以互相之間賦值。

其實(shí)和上面是一樣的道理,那個(gè)函數(shù)function返回值是一個(gè)int*類(lèi)型的指針,然后賦值給了p而已

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”int value = 0;

int *p;//定義一個(gè)指針int *q;//定義一個(gè)指針

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

p=&value;//把value的地址賦值給了p

q=p;//把p代表的地址給q

printf(“Address1 of a: %p

”,&value);//打印value的地址

printf(“Address2 of a: %p

”,q);//打印p所代表的地址

while(1)

{

}

}

姑且再問(wèn)一句,函數(shù)名字是啥?

咱們都知道這樣調(diào)用函數(shù)

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”void function()

{

printf(“zhiguoxin

”);

}

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

function();

while(1)

{

}

}

但是這樣的見(jiàn)過(guò)沒(méi)

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”void (*fun)();

void function()

{

printf(“zhiguoxin

”);

}

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

fun = function;

fun();

while(1)

{

}

}

這里采用了函數(shù)指針

先記住一句話

“函數(shù)名就是這個(gè)函數(shù)的地址! 函數(shù)名就是這個(gè)函數(shù)的地址! 函數(shù)名就是這個(gè)函數(shù)的地址!”既然是地址,那么這個(gè)地址應(yīng)該可以賦值給一個(gè)指針。因?yàn)槭呛瘮?shù)的地址,所以咱定義的指針也一定是一個(gè)函數(shù)類(lèi)型的。

上面的函數(shù)void function()是一個(gè)沒(méi)有返回值,沒(méi)有形參的函數(shù)。那么咱需要定義一個(gè)這種的指針類(lèi)型,其實(shí)就是void (*指針變量名字,隨意寫(xiě)) ()。上面寫(xiě)的是 void (*fun)(); fun就是一個(gè)函數(shù)類(lèi)型的指針,是一個(gè)沒(méi)有返回值,沒(méi)有形參的函數(shù)指針。

咱可以把這種函數(shù)賦值給這個(gè)指針變量。就是上面的fun=function。那么這個(gè)函數(shù)指針便代表了那個(gè)函數(shù)fun就等同于function。所以調(diào)用 fun(); 就等同于調(diào)用function()。

如果函數(shù)有形參怎么辦? 好辦,它有咱就+

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”void (*fun)(int a);

void function(int value)

{

printf(“value= %d

”,value);

}

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

fun = function;//把function賦值給fun

fun(520);//fun就等同于function

while(1)

{

}

}

如果函數(shù)有返回值怎么辦?照+不誤

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”int res;

int (*fun)(int a);

int function(int value)

{

return value;

}

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

fun = function;//把function賦值給fun

res = fun(520);//fun就等同于function

printf(“res = %d”,res);

while(1)

{

}

}

總結(jié)一下

指針呢其實(shí)基本的也就是上面那些,指針就是用來(lái)記錄變量的地址的。或是做地址之間的傳遞的。

&代表取地址符。

*代表取數(shù)據(jù)。

&{變量名} :就是把這個(gè)變量的地址取出來(lái)。

*{指針變量名} :就是把這個(gè)指針?biāo)淼牡刂防锩娴拇娴闹等〕鰜?lái)”下面看一些比較常見(jiàn)的應(yīng)用。把數(shù)組的地址賦值給指針,然后用指針操作數(shù)組

#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”char temp[3]={1,2,3};

char *p;

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

p=temp;//將數(shù)組名賦值給指針變量p,p就指向數(shù)組temp的首地址

printf(“value0 = %d

”,*p); //p就代表數(shù)組的第一個(gè)數(shù)據(jù)的地址

printf(“value1 = %d

”,*(p+1));//p+1就代表數(shù)組的第二個(gè)數(shù)據(jù)的地址

printf(“value2 = %d

”,*(p+2));//p+2就代表數(shù)組的第三個(gè)數(shù)據(jù)的地址

printf(“temp[0] = %d

”,p[0]);//p[0]等同于temp[0]

printf(“temp[1] = %d

”,p[1]);//p[1]等同于temp[1]

printf(“temp[2] = %d

”,p[2]);//p[2]等同于temp[2]

while(1)

{

}

}

5、函數(shù)的形參是一個(gè)指針#include “sys.h”#include “l(fā)ed.h”#include “delay.h”#include “usart.h”char temp[3]={1,2,3};

void function(char *value)

{

printf(“value0 = %d

”,value[0]);

printf(“value1 = %d

”,value[1]);

printf(“value2 = %d

”,value[2]);

}

int main(void)

{

uart_init(115200);//串口初始化

delay_init();

function(temp);

while(1)

{

}

}

以上的指針的基本知識(shí),多練習(xí)幾遍就可以。指針真正的應(yīng)用是在于代碼的封裝。可能對(duì)于初學(xué)者感受不到其作用,但是當(dāng)你成為真正的開(kāi)發(fā)人員。你會(huì)發(fā)現(xiàn)把好多功能函數(shù)封裝起來(lái),然后留出接口來(lái)調(diào)用是以后必不可少的。

封裝的時(shí)候會(huì)大量的使用指針、函數(shù)指針、結(jié)構(gòu)體指針等,怎么說(shuō)呢!90%的程序員敲的是字母,寫(xiě)的是代碼。當(dāng)你開(kāi)始封裝的時(shí)候,你寫(xiě)的便是思想,但是需要一定的基礎(chǔ)知識(shí)儲(chǔ)備才能達(dá)到。

本文編輯轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。版權(quán)歸原作者所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)聯(lián)系我們第一時(shí)間刪除內(nèi)容!

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6043

    文章

    44622

    瀏覽量

    638548
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1369

    瀏覽量

    115003
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10923

    瀏覽量

    357569
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62971
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4825

    瀏覽量

    69048

原文標(biāo)題:干貨|手把手教你寫(xiě)單片機(jī)的指針

文章出處:【微信號(hào):FANYPCB,微信公眾號(hào):凡億PCB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)Debug工具性能對(duì)比 單片機(jī)調(diào)試常用命令

    單片機(jī)(Microcontroller Unit, MCU)調(diào)試是嵌入式開(kāi)發(fā)中的一個(gè)重要環(huán)節(jié),它幫助開(kāi)發(fā)者發(fā)現(xiàn)和修復(fù)代碼中的錯(cuò)誤,優(yōu)化程序性能。不同的單片機(jī)和開(kāi)發(fā)環(huán)境可能使用不同的調(diào)試工具和命令
    的頭像 發(fā)表于 12-19 09:56 ?473次閱讀

    51單片機(jī)中為什么很少出現(xiàn)printf的身影

    51單片機(jī)中為什么很少出現(xiàn) printf 的身影?是用不了嗎? 不是的,51單片機(jī)可以用 printf,只是不建議使用。 平時(shí)我們?cè)诓僮飨到y(tǒng)上寫(xiě)C語(yǔ)言代碼,使用 printf 可以把數(shù)據(jù)寫(xiě)到標(biāo)準(zhǔn)輸出
    的頭像 發(fā)表于 12-03 10:46 ?524次閱讀
    51<b class='flag-5'>單片機(jī)</b>中為什么很少出現(xiàn)printf的身影

    如何優(yōu)化單片機(jī)項(xiàng)目的功耗

    在現(xiàn)代電子設(shè)計(jì)中,功耗優(yōu)化已成為一個(gè)不可忽視的重要議題。對(duì)于單片機(jī)(MCU)項(xiàng)目而言,功耗不僅關(guān)系到產(chǎn)品的能效比,還直接影響到電池壽命和熱管理。 硬件層面的功耗優(yōu)化 1. 選擇合適的單片機(jī) 選擇一個(gè)
    的頭像 發(fā)表于 11-01 14:16 ?510次閱讀

    單片機(jī)編程語(yǔ)言有哪些選擇

    單片機(jī)(Microcontroller Unit,MCU)編程是指為單片機(jī)編寫(xiě)程序的過(guò)程,這些程序控制單片機(jī)的行為和功能。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng),如家用電器、汽車(chē)電子、工業(yè)控制等領(lǐng)
    的頭像 發(fā)表于 11-01 14:13 ?947次閱讀

    單片機(jī)怎么寫(xiě)入程序

    單片機(jī)(Microcontroller Unit,MCU)是一種集成電路芯片,它將計(jì)算機(jī)的CPU、存儲(chǔ)器、輸入/輸出接口等功能集成在一個(gè)芯片上。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中。編寫(xiě)單片機(jī)
    的頭像 發(fā)表于 10-21 11:21 ?926次閱讀

    把esp8266加入到c51單片機(jī)單通道程序怎么寫(xiě)

    要將ESP8266模塊加入到C51單片機(jī)的單通道程序中,您需要了解如何通過(guò)串行通信(UART)與ESP8266進(jìn)行通信。以下是如何實(shí)現(xiàn)這一點(diǎn)的步驟和示例代碼。 步驟 1:硬件連接 首先,您需要
    的頭像 發(fā)表于 10-18 11:32 ?795次閱讀

    單片機(jī)的中斷機(jī)制

    單片機(jī)的中斷機(jī)制是一種重要的處理方式,它允許單片機(jī)在執(zhí)行主程序的過(guò)程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機(jī)制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機(jī)在各種應(yīng)用領(lǐng)域中得到廣泛應(yīng)用。以下是對(duì)
    的頭像 發(fā)表于 10-17 18:03 ?965次閱讀

    單片機(jī)STM32可以用Python寫(xiě)嗎?可以的開(kāi)發(fā)板有哪些?

    近年來(lái),隨著嵌入式技術(shù)的發(fā)展,Python語(yǔ)言逐漸被引入到單片機(jī)開(kāi)發(fā)中,尤其是一些高性能的單片機(jī)上。這一趨勢(shì)給開(kāi)發(fā)者帶來(lái)了極大的便利,尤其是在快速原型設(shè)計(jì)和實(shí)驗(yàn)中。本文將詳細(xì)探討STM32單片機(jī)是否
    的頭像 發(fā)表于 09-05 08:00 ?4492次閱讀
    <b class='flag-5'>單片機(jī)</b>STM32可以用Python<b class='flag-5'>寫(xiě)</b>嗎?可以的開(kāi)發(fā)板有哪些?

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序是單片機(jī)開(kāi)發(fā)過(guò)程中非常重要的一步,它涉及到將編寫(xiě)好的程序代碼通過(guò)一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲(chǔ)器中,使單片機(jī)能夠按照預(yù)定的邏輯執(zhí)行任務(wù)。 一、硬件準(zhǔn)備
    的頭像 發(fā)表于 09-02 09:47 ?1436次閱讀

    UCGUI單片機(jī)源碼

    UCGUI單片機(jī)源碼
    發(fā)表于 07-04 17:11 ?1次下載

    STM32F0系列單片機(jī),指針取整型值錯(cuò)誤的原因?

    STM32F0系列單片機(jī),指針取整型值錯(cuò)誤,用F0的進(jìn)來(lái)看下,代碼如下,附件里也有個(gè)工程可以下來(lái)單步運(yùn)行下,這是什么問(wèn)題如何解決. uint8_t a
    發(fā)表于 05-15 07:46

    如何系統(tǒng)、科學(xué)地自學(xué)單片機(jī)

    很多初學(xué)者都會(huì)面臨這個(gè)問(wèn)題,我想學(xué)習(xí)單片機(jī)、我也想學(xué)好單片機(jī)、我也想系統(tǒng)地學(xué)習(xí)單片機(jī),但是單片機(jī)涉及到的學(xué)科多且雜根本不是三天兩天就能學(xué)完的,很多人都逃脫不了從入門(mén)到放棄的怪圈?那么我
    的頭像 發(fā)表于 03-28 08:03 ?1194次閱讀
    如何系統(tǒng)、科學(xué)地自學(xué)<b class='flag-5'>單片機(jī)</b>?

    單片機(jī)是什么?單片機(jī)編程如何入門(mén)?

    單片機(jī)其實(shí)是一種很早的叫法了,最開(kāi)始我們的前輩叫單板機(jī)或者叫單片機(jī),因?yàn)槟莻€(gè)時(shí)候單片機(jī)的處理能力還沒(méi)有很強(qiáng),現(xiàn)在我們所用的基本都是微型處理單元,也叫為控制器也稱之為MCU
    的頭像 發(fā)表于 03-28 08:03 ?2222次閱讀
    <b class='flag-5'>單片機(jī)</b>是什么?<b class='flag-5'>單片機(jī)</b>編程如何入門(mén)?

    fpga能代替單片機(jī)

    FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)和單片機(jī)在功能和應(yīng)用上各有特點(diǎn)和優(yōu)勢(shì),因此FPGA并不能完全代替單片機(jī)
    的頭像 發(fā)表于 03-27 14:29 ?997次閱讀

    fpga和單片機(jī)的區(qū)別

    FPGA和單片機(jī)在多個(gè)方面存在顯著的差異:
    的頭像 發(fā)表于 03-14 16:30 ?5320次閱讀
    豪盈国际娱乐| 新葡京娱乐城官网| 最好的百家乐娱乐场| 澳门百家乐官网破解方法| bet365注册找谁| 钱隆百家乐破解版| 真人百家乐官网体验金| 百家乐官网玩法及细则| 大发888优惠码| 百家乐网站建设| 沙龙百家乐官网娱乐平台| 真人百家乐官网出千| 大发888微信公众号2| 百家乐分析网| 百家乐官网高手论| 百家乐官网赌神| 蒙特卡罗娱乐网| 东方太阳城三期琴湖湾| 百家乐精神| 娱乐百家乐官网下载| 澳门赌百家乐官网心法| 百家乐官网网站加盟| 大发888官网吧| 神州百家乐的玩法技巧和规则 | 网上百家乐必赢玩| 百家乐体育博彩| 百家乐官网计划策略| 百家乐官网稳一点的押法| 太子娛樂城网址| 百家乐官网定位胆技巧| 香港百家乐官网玩法| 百家乐官网赌场作弊| 尊龙国际| k7娱乐城官网| fl水果机教程| 温州百家乐的玩法技巧和规则| 百家乐和局投注法| 做生意的十大风水禁忌| 百家乐官网赌博代理| 新思维百家乐官网投注法| 胶州市|