国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

桓臺(tái)建設(shè)網(wǎng)站百度網(wǎng)址導(dǎo)航

桓臺(tái)建設(shè)網(wǎng)站,百度網(wǎng)址導(dǎo)航,上海公共招聘網(wǎng)官方網(wǎng)站,泰安人才網(wǎng)最新消息變量的四大存儲(chǔ)類型static extern auto register外部變量(全局變量)extern----全局靜態(tài)存儲(chǔ)區(qū)定義 引用性聲明?易錯(cuò)點(diǎn):函數(shù)之外未定義的變量一般是外部變量 extern全局變量 與 局部變量的區(qū)別?? 謹(jǐn)記:聲明可以多次,…

變量的四大存儲(chǔ)類型static extern auto register

  • 外部變量(全局變量)extern----全局靜態(tài)存儲(chǔ)區(qū)
    • 定義 引用性聲明
    • ?易錯(cuò)點(diǎn):函數(shù)之外未定義的變量一般是外部變量 extern
      • 全局變量 與 局部變量的區(qū)別
      • ?? 謹(jǐn)記:聲明可以多次,定義只能一次
    • extern的生存周期
  • 靜態(tài)存儲(chǔ)類— static
    • 定義
    • ?易錯(cuò)點(diǎn):static 變量的值只會(huì)在第一次初始化時(shí)被賦值,之后在函數(shù)調(diào)用之間保持不變。
    • static的生存周期— 取決于程序運(yùn)行周期,不僅僅在函數(shù)調(diào)用期間
  • extern與static的作用域和周期的不同
    • 作用域:
    • 周期:
  • auto 自動(dòng)存儲(chǔ)類別— 默認(rèn) — 動(dòng)態(tài)存儲(chǔ)
  • register—— 寄存器存儲(chǔ)
    • 存儲(chǔ)在內(nèi)存中 CPU寄存器
    • ??重點(diǎn):register 的注意事項(xiàng)
    • 用于單片機(jī)的道理——提高效率
  • 總結(jié):四種存儲(chǔ)類別對(duì)比

  • 在C語(yǔ)言中變量和函數(shù)有數(shù)據(jù)類型和存儲(chǔ)類型兩個(gè)屬性,因此變量定義的一般形式為:存儲(chǔ)類型 數(shù)據(jù)類型 變量名表;

C語(yǔ)言提供了一下幾種不同的存儲(chǔ)類型:

(1) 自動(dòng)變量(auto)

(2) 靜態(tài)變量(static)

(3) 外部變量(extern)

(4) 寄存器變量(register)

下面一個(gè)一個(gè)介紹:


?

外部變量(全局變量)extern----全局靜態(tài)存儲(chǔ)區(qū)

定義 引用性聲明

標(biāo)準(zhǔn)定義格式:extern 類型名 變量名;

如果在所有函數(shù)之外定義的變量沒(méi)有指定其存儲(chǔ)類別,那么它就是一個(gè)外部變量,它的作用域是從它的定義點(diǎn)到本文件的末尾在單個(gè)源文件中的確是這樣,如果有多個(gè)源文件,全局變量的作用范圍不是從變量定義處到該文件結(jié)尾,而是在其他文件中也有效)但是如果要在定義點(diǎn)之前或者其他文件中使用它,那么就需要使用關(guān)鍵字extern對(duì)其進(jìn)行聲明(注意不是定義,編譯器并不為其分配內(nèi)存)

  • 總結(jié)說(shuō)也就是,函數(shù)之外沒(méi)有指定存儲(chǔ)類別的,一般是外部變量,作用域是定義位置到文件末尾。但是要在其他文件中使用需要extern聲明,不分配內(nèi)存。

舉例說(shuō)明:

具體實(shí)現(xiàn)步驟如下:

在 file1.c 文件中定義全局變量 count:int count = 0;在 file2.c 文件中使用 extern 聲明 count 變量:extern int count;

這樣,在 file2.c 文件中就可以訪問(wèn) count 變量了,而不需要重新定義它。在編譯時(shí),兩個(gè)源文件將被鏈接起來(lái),共享同一個(gè) count 變量。


?

注意:extern int i 是聲明,但是初始化賦值就是定義了。

extern int i; //是聲明,不是定義,沒(méi)有分配內(nèi)存
int i; //是定義

如果在聲明的時(shí)候給變量賦值,那么就和去掉extern直接定義變量賦值是等價(jià)的

extern int a = 10;//盡量不要寫這種定義方式
int a = 10;//上述兩條語(yǔ)句等價(jià)

盡量不要這樣寫,這樣就分配內(nèi)存空間了


?

?易錯(cuò)點(diǎn):函數(shù)之外未定義的變量一般是外部變量 extern

也就是說(shuō)一般沒(méi)指定存儲(chǔ)類別的變量咱們常見(jiàn)的是extern定義的,也就是說(shuō) 全局變量是聲明,局部變量(函數(shù)變量)是定義! ,區(qū)別在于占用空間。

舉例如下:

//說(shuō)一般沒(méi)指定存儲(chǔ)類別的變量咱們常見(jiàn)的是extern定義的,也就是說(shuō) **`全局變量是聲明,局部變量(函數(shù)變量)是定義!`** ,區(qū)別在于占用空間。
#include<stdio.h>//全局變量
int a;
int a;  //函數(shù)外邊,相當(dāng)于extern聲明??  ,聲明可以??????int main()
{int b;int b;  //函數(shù)內(nèi)部,相當(dāng)于局部變量。相當(dāng)于auto int b;定義只能一次。會(huì)報(bào)錯(cuò)return 0;
}

?

全局變量 與 局部變量的區(qū)別

Tips:
定義:表示創(chuàng)建變量或分配存儲(chǔ)單元
聲明:說(shuō)明變量的性質(zhì),但并不分配存儲(chǔ)單元

extern int i; //是聲明,不是定義,沒(méi)有分配內(nèi)存
int i; //是定義

如果在聲明的時(shí)候給變量賦值,那么就和去掉extern直接定義變量賦值是等價(jià)的

extern int a = 10;//盡量不要寫這種定義方式
int a = 10;//上述兩條語(yǔ)句等價(jià)

(注意上面的不同語(yǔ)句對(duì)聲明和定義的區(qū)分,對(duì)源文件中的局部變量來(lái)說(shuō)是成立的(也就是.c文件),而對(duì)于源文件中的全局變量(外部變量)int a和在頭文件中的int a就不能用上面的語(yǔ)句來(lái)解釋聲明和定義的區(qū)別)

補(bǔ)充:定義和聲明的一個(gè)小坑,對(duì)于int a;來(lái)說(shuō),在源文件中,如果是全局變量的話就是聲明,如果是局部變量的話就是定義


?

?? 謹(jǐn)記:聲明可以多次,定義只能一次


?

extern的生存周期

extern 關(guān)鍵字只是聲明一個(gè)變量,它并不會(huì)直接創(chuàng)建變量的實(shí)體,因此沒(méi)有生命周期的概念。

具體來(lái)說(shuō),extern 只是向編譯器聲明某個(gè)變量已經(jīng)在別處定義過(guò),讓編譯器在編譯時(shí)知道這個(gè)變量的存在。這樣,在鏈接階段,編譯器就能夠?qū)⑺杏玫皆撟兞康拇a與它的定義進(jìn)行鏈接,從而使得程序能夠正常運(yùn)行。

因此,extern 聲明的變量的生命周期與其定義的實(shí)體的生命周期是一致的,即它們都是在程序運(yùn)行期間一直存在的。這意味著,如果一個(gè)全局變量在某個(gè)文件中被定義為 extern,那么它的生命周期將與整個(gè)程序的生命周期相同,只要程序運(yùn)行,該變量就一直存在。


?

靜態(tài)存儲(chǔ)類— static

定義

  • 在 C 語(yǔ)言中,可以使用 static 關(guān)鍵字來(lái)定義靜態(tài)存儲(chǔ)類變量或函數(shù)。

對(duì)于靜態(tài)存儲(chǔ)類變量,static 關(guān)鍵字用于改變變量的存儲(chǔ)位置和作用域。具體來(lái)說(shuō),使用 static 定義的變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)中,具有靜態(tài)持續(xù)性,即使函數(shù)返回,它的值也會(huì)保留。而且,static 變量只能在當(dāng)前文件中訪問(wèn),不能被其他文件訪問(wèn)。

  • 定義格式:static 類型符 變量名稱 = 初始值;

舉例:

#include <stdio.h>void func(void);static int count = 10; // 定義靜態(tài)存儲(chǔ)類變量int main()
{while (count--){func();}return 0;}
void func(void)
{static int i = 5; // 定義靜態(tài)存儲(chǔ)類變量i++;printf("i is %d and count is %d\n", i, count);
}

在上面的代碼中,count 和 i 都是靜態(tài)存儲(chǔ)類變量,它們的值在函數(shù)調(diào)用之間保持不變。同時(shí),count 只能在當(dāng)前文件中訪問(wèn),而 i 只能在 func() 函數(shù)中訪問(wèn)。

?

?易錯(cuò)點(diǎn):static 變量的值只會(huì)在第一次初始化時(shí)被賦值,之后在函數(shù)調(diào)用之間保持不變。

舉例說(shuō)明:

#include <stdio.h>void func(void);int main()
{for (int i = 0; i < 5; i++){func();}return 0;
}void func(void)
{static int i = 5; // 定義靜態(tài)存儲(chǔ)類變量 staticint j = 5; // 定義自動(dòng)存儲(chǔ)類變量 auto i++; // 對(duì)靜態(tài)變量進(jìn)行自增j++; // 對(duì)自動(dòng)變量進(jìn)行自增printf("i is %d and j is %d\n", i, j);
}

在上面的示例中, func() 函數(shù)中定義了一個(gè)靜態(tài)變量 i 和一個(gè)自動(dòng)變量 j。在 func() 函數(shù)的每次調(diào)用中,i 的值都會(huì)自增1,而j 的值則會(huì)在每次調(diào)用中被初始化為5,然后自增1。

運(yùn)行程序,執(zhí)行效果如下:

i is 6 and j is 6
i is 7 and j is 6
i is 8 and j is 6
i is 9 and j is 6
i is 10 and j is 6

可以看到,static 變量 i 的值在函數(shù)調(diào)用之間保持不變,并且在每次調(diào)用時(shí)自增1,而自動(dòng)變量 j 的值在每次調(diào)用時(shí)都會(huì)被重新初始化為5,然后自增1。

這說(shuō)明了 static 變量的值不會(huì)改變的原因是因?yàn)樗鼈兙哂徐o態(tài)存儲(chǔ)期和靜態(tài)鏈接性。


如果定義為全局靜態(tài)變量也不會(huì)變,還是會(huì)保持值,不會(huì)被初始化。

#include <stdio.h>void func(void);
static int i = 5; // 定義靜態(tài)存儲(chǔ)類變量 static
int main()
{for (int i = 0; i < 5; i++){func();}return 0;
}void func(void)
{int j = 5; // 定義自動(dòng)存儲(chǔ)類變量 auto i++; // 對(duì)靜態(tài)變量進(jìn)行自增j++; // 對(duì)自動(dòng)變量進(jìn)行自增printf("i is %d and j is %d\n", i, j);
}

不會(huì)變化的具體原因是:

static 定義的變量值不會(huì)變化的具體原因是因?yàn)?#xff1a;

  1. 靜態(tài)存儲(chǔ)期:static 變量被分配在靜態(tài)存儲(chǔ)區(qū)中,該區(qū)域的變量在程序運(yùn)行期間一直存在,而不是像局部變量一樣在函數(shù)調(diào)用結(jié)束后銷毀。
  2. 靜態(tài)鏈接性:static 變量具有靜態(tài)鏈接性,只能被定義它的源文件內(nèi)的函數(shù)訪問(wèn),其他文件無(wú)法訪問(wèn)。
  3. 變量只被初始化一次:static 變量只被初始化一次,在其它時(shí)刻,只是在其原有的基礎(chǔ)上進(jìn)行修改。因此,變量的值在函數(shù)調(diào)用之間保持不變。

綜上所述,static 變量值不會(huì)改變的原因是因?yàn)樗鼈兙哂?靜態(tài)存儲(chǔ)期和靜態(tài)鏈接性,以及變量只被初始化一次,所以在函數(shù)調(diào)用之間保持不變。


這個(gè)易錯(cuò)點(diǎn)很重要,也是static的特別之處。特點(diǎn)。


?

static的生存周期— 取決于程序運(yùn)行周期,不僅僅在函數(shù)調(diào)用期間

static 定義的變量有靜態(tài)存儲(chǔ)期,意味著它們?cè)诔绦蜻\(yùn)行期間一直存在,直到程序結(jié)束才被銷毀。在函數(shù)內(nèi)部,static 定義的變量只會(huì)被初始化一次,在其它時(shí)刻,只是在其原有的基礎(chǔ)上進(jìn)行修改,因此其值在函數(shù)調(diào)用之間保持不變。

具體來(lái)說(shuō),static 定義的變量的生存周期取決于其定義位置。如果在函數(shù)內(nèi)部定義了 static 變量,則該變量的生存周期為整個(gè)程序的運(yùn)行期間,而不是僅在函數(shù)調(diào)用期間。

舉例:

#include <stdio.h>void test()
{static int i = 0;printf("i = %d\n", i);i++;
}int main()
{for (int j = 0; j < 3; j++){test();}return 0;
}

在這個(gè)示例中,test() 函數(shù)內(nèi)部定義了一個(gè) static 變量 i,并在每次調(diào)用 test() 函數(shù)時(shí)輸出 i 的值。由于 i 是 static 變量,所以它的值在函數(shù)調(diào)用之間保持不變,并且在每次調(diào)用時(shí)自增1。

運(yùn)行程序如下:

i = 0
i = 1
i = 2

可以看到,i 的值在函數(shù)調(diào)用之間保持不變,每次調(diào)用時(shí)自增1,這說(shuō)明了 static 變量的生存周期是整個(gè)程序的運(yùn)行期間,而不是僅在函數(shù)調(diào)用期間。


?

下面總結(jié)下區(qū)別 : 對(duì)比記憶

extern與static的作用域和周期的不同

extern 和 static 是 C 語(yǔ)言中的兩個(gè)關(guān)鍵字,它們?cè)谧兞康淖饔糜蚝蜕芷谏嫌泻艽蟮牟煌?/p>

作用域:

  • extern 關(guān)鍵字用于聲明外部變量,也就是在一個(gè)源文件中定義,而在另一個(gè)源文件中聲明。外部變量具有全局作用域,也就是說(shuō),它們的作用域不限于定義它們的函數(shù)或代碼塊。

  • static 關(guān)鍵字用于定義靜態(tài)變量,靜態(tài)變量的作用域僅限于定義它們的函數(shù)或代碼塊,也就是說(shuō),它們只能在其定義的代碼塊中訪問(wèn)。

周期:

  • extern 關(guān)鍵字用于聲明外部變量,其定義和初始化在另一個(gè)源文件中進(jìn)行。因此,外部變量的生命周期和作用域是整個(gè)程序的運(yùn)行期間,也就是說(shuō),它們?cè)诔绦蜷_(kāi)始時(shí)創(chuàng)建,在程序結(jié)束時(shí)銷毀。

  • static 關(guān)鍵字用于定義靜態(tài)變量,靜態(tài)變量的生命周期是整個(gè)程序的運(yùn)行期間。在函數(shù)內(nèi)部定義 static 變量,這個(gè)變量只會(huì)被初始化一次,然后在函數(shù)調(diào)用之間保持不變。

綜上所述,extern 和 static 關(guān)鍵字定義的變量的作用域和生命周期都有所不同,需要根據(jù)具體的需求來(lái)選擇使用哪個(gè)關(guān)鍵字來(lái)定義變量。


因此,你可以這樣理解:

  • extern 關(guān)鍵字聲明的變量可以在整個(gè)程序中訪問(wèn),它的生命周期和作用域是全局的,直到程序結(jié)束時(shí)被銷毀。

  • static 關(guān)鍵字定義的變量只能在同一個(gè)源文件中訪問(wèn),它的生命周期是整個(gè)程序的運(yùn)行期間,但作用域是局部的,只能在定義它的函數(shù)或代碼塊中訪問(wèn),直到程序結(jié)束時(shí)被銷毀。

  • 還有個(gè)不同之處是 extern是聲明,static是定義。 這取決于extern的特殊性

?


auto 自動(dòng)存儲(chǔ)類別— 默認(rèn) — 動(dòng)態(tài)存儲(chǔ)

在 C 語(yǔ)言中,auto 存儲(chǔ)類型是默認(rèn)的存儲(chǔ)類型,如果沒(méi)有顯式地指定存儲(chǔ)類型,則變量會(huì)被默認(rèn)為自動(dòng)存儲(chǔ)類型。

舉例:在函數(shù)內(nèi)部定義一個(gè)自動(dòng)變量:

void myFunction() {auto int x = 0;// ...
}

自動(dòng)存儲(chǔ)類型的變量會(huì)在定義它的函數(shù)或代碼塊中被創(chuàng)建,當(dāng)函數(shù)或代碼塊執(zhí)行完畢時(shí),自動(dòng)存儲(chǔ)類型的變量也會(huì)被銷毀。這意味著,變量的生命周期僅限于它所在的函數(shù)或代碼塊內(nèi)部,不能被其他函數(shù)或代碼塊訪問(wèn)。

在上述代碼中,變量 x 被定義為自動(dòng)存儲(chǔ)類型。它的作用域和生命周期僅限于函數(shù) myFunction() 中,在函數(shù)執(zhí)行完畢后會(huì)被銷毀。

  • 需要注意的是,在 C 語(yǔ)言中,使用 auto 聲明變量時(shí),不能同時(shí)給出變量的存儲(chǔ)類別說(shuō)明符,例如不能將 auto 與 static 或 extern 同時(shí)使用,因?yàn)檫@樣會(huì)產(chǎn)生二義性。

  • 不賦初值的話,隨機(jī)值

  • 不專門聲明為 static 存儲(chǔ)類別,都是動(dòng)態(tài)地分配存儲(chǔ)空間的,數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)中。

  • 關(guān)鍵字 auto 可以省略,auto 不寫則隱含定為“自動(dòng)存儲(chǔ)類別”,屬于動(dòng)態(tài)存儲(chǔ)方式


?

register—— 寄存器存儲(chǔ)

register 是 C 語(yǔ)言中的一種存儲(chǔ)類別(Storage Class),它用于告訴編譯器將變量存儲(chǔ)在寄存器中。在 C 語(yǔ)言中,變量的存儲(chǔ)位置可以是寄存器、堆?;蜢o態(tài)存儲(chǔ)區(qū),使用 register 存儲(chǔ)類別可以幫助我們優(yōu)化代碼性能,因?yàn)榧拇嫫髟L問(wèn)速度比訪問(wèn)內(nèi)存快。

存儲(chǔ)在內(nèi)存中 CPU寄存器

在 C 語(yǔ)言中,使用 register 關(guān)鍵字聲明變量時(shí),它將被存儲(chǔ)在 CPU 的寄存器中,而不是存儲(chǔ)在內(nèi)存中。由于寄存器是 CPU 內(nèi)部的高速存儲(chǔ)器,所以變量的訪問(wèn)速度會(huì)更快,從而提高程序的執(zhí)行效率。但需要注意的是,變量的存儲(chǔ)位置和寄存器的數(shù)量都是由編譯器決定的,使用 register 關(guān)鍵字只是向編譯器建議將變量存儲(chǔ)在寄存器中,但并不保證一定會(huì)存儲(chǔ)在寄存器中。

需要注意的是,由于寄存器的數(shù)量是有限的,所以并不是所有的變量都可以存儲(chǔ)在寄存器中。編譯器會(huì)根據(jù)實(shí)際情況和編譯器選項(xiàng)來(lái)決定哪些變量應(yīng)該存儲(chǔ)在寄存器中。因此,使用 register 關(guān)鍵字并不一定會(huì)提高程序的性能,有時(shí)可能會(huì)適得其反。建議只在必要時(shí)使用 register 關(guān)鍵字,或者讓編譯器自動(dòng)決定變量的存儲(chǔ)位置。

舉例:例如,在函數(shù)內(nèi)部定義一個(gè) register 變量:

void myFunction() {register int x = 0;// ...
}

在上述代碼中,變量 x 被定義為 register 存儲(chǔ)類型,它將被存儲(chǔ)在寄存器中(如果編譯器允許的話)。由于寄存器的訪問(wèn)速度比內(nèi)存快,因此訪問(wèn)變量 x 的速度會(huì)更快,從而提高程序的性能。


??重點(diǎn):register 的注意事項(xiàng)

  1. 用register修飾的變量只能是局部變量和函數(shù)參數(shù),不能是全局變量和靜態(tài)變量。因?yàn)閏pu的資源有限,因此不可能一直讓一個(gè)變量一直占著cpu寄存器

  2. register變量一定是cpu可以接受的值

  3. 不可以用&運(yùn)算符對(duì)register變量進(jìn)行取址。 使用 register 存儲(chǔ)類別的變量不能直接獲取其內(nèi)存地址,因?yàn)樗鼈兛赡艽鎯?chǔ)在寄存器中,而寄存器沒(méi)有地址。 使用 register 存儲(chǔ)類別的變量不要取地址,因?yàn)檫@樣會(huì)導(dǎo)致編譯器無(wú)法將其存儲(chǔ)在寄存器中,從而影響程序的執(zhí)行效率。

  4. register只是請(qǐng)求寄存器變量,不一定會(huì)成功。

總之,使用 register 存儲(chǔ)類別應(yīng)該根據(jù)具體的應(yīng)用場(chǎng)景進(jìn)行考慮,避免過(guò)度使用 register 存儲(chǔ)類別,從而影響程序的性能。


?

用于單片機(jī)的道理——提高效率

register 存儲(chǔ)類別在單片機(jī)編程中也經(jīng)常被使用。由于單片機(jī)資源有限,使用寄存器存儲(chǔ)變量可以節(jié)約存儲(chǔ)空間,提高程序執(zhí)行效率。特別是在需要頻繁訪問(wèn)變量的場(chǎng)景下,使用 register 存儲(chǔ)類別可以提高程序的響應(yīng)速度。

舉例來(lái)說(shuō),如果需要在單片機(jī)中使用計(jì)時(shí)器,可以定義一個(gè) register 變量來(lái)存儲(chǔ)計(jì)時(shí)器的值。這樣,在每次需要使用計(jì)時(shí)器時(shí),就可以直接訪問(wèn)寄存器中的值,而不需要從內(nèi)存中讀取,從而提高程序的執(zhí)行效率。

需要注意的是,在單片機(jī)編程中使用 register 存儲(chǔ)類別需要謹(jǐn)慎,因?yàn)榧拇嫫鞯臄?shù)量很少,而且需要編譯器支持。過(guò)度使用 register 存儲(chǔ)類別可能會(huì)導(dǎo)致編譯器無(wú)法將變量存儲(chǔ)在寄存器中,從而影響程序的性能。因此,需要在具體應(yīng)用場(chǎng)景下根據(jù)實(shí)際情況決定是否使用 register 存儲(chǔ)類別。


?

總結(jié):四種存儲(chǔ)類別對(duì)比

下表對(duì) C 語(yǔ)言中的四種存儲(chǔ)類別進(jìn)行了比較,包括了生存周期、作用域、存儲(chǔ)方式、存儲(chǔ)區(qū)域等方面:

存儲(chǔ)類別生命周期作用域存儲(chǔ)方式存儲(chǔ)區(qū)域使用場(chǎng)景
auto函數(shù)內(nèi)部塊級(jí)別RAM用于存儲(chǔ)局部變量
static整個(gè)程序塊級(jí)別數(shù)據(jù)段RAM用于存儲(chǔ)局部變量的持久性版本
extern整個(gè)程序文件級(jí)數(shù)據(jù)段RAM用于在不同的源文件中共享全局變量
register函數(shù)內(nèi)部塊級(jí)別寄存器CPU用于提高變量的訪問(wèn)速度

其中,“存儲(chǔ)方式”指的是變量在內(nèi)存中的存儲(chǔ)方式,包括棧、堆、數(shù)據(jù)段和寄存器等;“存儲(chǔ)區(qū)域”指的是變量在程序執(zhí)行期間所占用的存儲(chǔ)區(qū)域,包括 RAM 和 CPU 寄存器等。


http://m.aloenet.com.cn/news/34035.html

相關(guān)文章:

  • 百度做任務(wù)的網(wǎng)站百度搜索資源平臺(tái)token
  • 企業(yè)網(wǎng)站建設(shè)方案書 范本網(wǎng)絡(luò)營(yíng)銷方案設(shè)計(jì)范文
  • 網(wǎng)站關(guān)鍵詞長(zhǎng)尾詞推廣普通話繪畫
  • 免費(fèi)網(wǎng)站推薦貨源seo排名優(yōu)化方式
  • 和女的做那個(gè)視頻網(wǎng)站應(yīng)用商店優(yōu)化
  • 成都網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷的特點(diǎn)和優(yōu)勢(shì)
  • 建設(shè)部投訴網(wǎng)站提高搜索引擎排名
  • jsp做的網(wǎng)站如何查看站長(zhǎng)資源平臺(tái)
  • 湖北宜昌網(wǎng)絡(luò)科技有限公司優(yōu)化課程設(shè)置
  • 現(xiàn)在最流行的網(wǎng)站推廣方式有哪些谷歌seo是什么
  • 怎樣設(shè)計(jì)自己網(wǎng)站域名不要手賤搜這15個(gè)關(guān)鍵詞
  • seo網(wǎng)站分析報(bào)告百度置頂廣告多少錢
  • 企業(yè)建設(shè)網(wǎng)站項(xiàng)目背景線下宣傳渠道和宣傳方式
  • 用服務(wù)器ip可以做網(wǎng)站嗎百度seo在線優(yōu)化
  • 專業(yè)的設(shè)計(jì)網(wǎng)站有哪些中國(guó)站免費(fèi)推廣入口
  • 做網(wǎng)站國(guó)家大學(xué)科技園鄭州網(wǎng)絡(luò)建設(shè)推廣
  • 哪些網(wǎng)站是java開(kāi)發(fā)的優(yōu)化關(guān)鍵詞的方法有哪些
  • 沈陽(yáng)市建設(shè)工程項(xiàng)目管理中心網(wǎng)站優(yōu)化大師官網(wǎng)
  • 做的比較好的手機(jī)網(wǎng)站東營(yíng)網(wǎng)站推廣公司
  • 做技術(shù)網(wǎng)站在背景圖產(chǎn)品推廣步驟
  • 有人說(shuō)做網(wǎng)站賭上海培訓(xùn)機(jī)構(gòu)整頓
  • 星沙網(wǎng)站制作網(wǎng)上宣傳廣告怎么做
  • 揭陽(yáng)手機(jī)網(wǎng)站建設(shè) 今日頭條
  • 做cpa搭建哪個(gè)網(wǎng)站比較好永久免費(fèi)制作網(wǎng)頁(yè)
  • 中國(guó)有色金屬建設(shè)股份有限公司網(wǎng)站seoheuni
  • 做網(wǎng)站的公司哪家最好廈門最快seo
  • 中拓網(wǎng)絡(luò)科技有限公司北京seo不到首頁(yè)不扣費(fèi)
  • 廣州最新發(fā)布最新百度seo新站優(yōu)化
  • 一臺(tái)云服務(wù)器做多個(gè)網(wǎng)站惠州seo外包服務(wù)
  • 成都網(wǎng)站建設(shè)名錄海南seo排名優(yōu)化公司