中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

怎么做網(wǎng)站生意線上宣傳渠道有哪些

怎么做網(wǎng)站生意,線上宣傳渠道有哪些,合肥營(yíng)銷型網(wǎng)站建設(shè),武漢網(wǎng)頁(yè)制作設(shè)計(jì)文章目錄 3.2.7 命名約定 3.3 #undef3.4 命令行定義3.5 條件編譯3.6 文件包含3.6.1 頭文件被包含的方式3.6.2 嵌套文件包含 4. 其他預(yù)處理指令 3.2.7 命名約定 一般來講函數(shù)和宏的使用語(yǔ)法很相似,所以語(yǔ)言本身沒法幫我們區(qū)分二者,那我們平時(shí)的一個(gè)習(xí)慣是…

文章目錄

        • 3.2.7 命名約定
      • 3.3 #undef
      • 3.4 命令行定義
      • 3.5 條件編譯
      • 3.6 文件包含
        • 3.6.1 頭文件被包含的方式
        • 3.6.2 嵌套文件包含
    • 4. 其他預(yù)處理指令

3.2.7 命名約定

一般來講函數(shù)的使用語(yǔ)法很相似,所以語(yǔ)言本身沒法幫我們區(qū)分二者,那我們平時(shí)的一個(gè)習(xí)慣是:

把宏名全部大寫
函數(shù)名不要全部大寫

#define MAX(x, y) ((x)>(y)?(x):(y))int Max(int x, int y)
{return x > y ? x : y;
}//有一個(gè)特例
//offsetof - 宏 - 全小寫int main()
{return 0;
}

3.3 #undef

這條指令用于移除一個(gè)宏定義。

#undef NAME
//如果現(xiàn)存的一個(gè)名字需要被重新定義,那么它的舊名字首先要被移除。

#include <stdio.h>#define MAX(x, y) ((x)>(y)?(x):(y))int Max(int x, int y)
{return x > y ? x : y;
}int main()
{int c = MAX(3, 5);printf("%d\n", c);
#undef MAXc = MAX(5, -5);//編譯器會(huì)報(bào)錯(cuò):“MAX”未定義printf("%d\n", c);return 0;
}

3.4 命令行定義

許多C的編譯器提供了一種能力,允許在命令行中定義符號(hào),用于啟動(dòng)編譯過程。

例如:當(dāng)我們根據(jù)同一個(gè)源文件要編譯出一個(gè)程序的不同版本的時(shí)候,這個(gè)特性有點(diǎn)用處。(假定某個(gè)程序中聲明了一個(gè)某個(gè)長(zhǎng)度的數(shù)組,如果機(jī)器內(nèi)存有限,我們需要一個(gè)很小的數(shù)組;但是另外一個(gè)機(jī)器內(nèi)存大些,我們需要一個(gè)數(shù)組能夠大些。)

注:VS環(huán)境無法演示,gcc來演示

#include <stdio.h>int main()
{int arr [SZ];int i = 0;for(i = 0; i < SZ; i++){arr[i] = i + 1;}for(i = 0; i < SZ; i++){printf("%d " , arr[i]);}return 0;
}

命令行定義

3.5 條件編譯

在編譯一個(gè)程序的時(shí)候我們?nèi)绻獙⒁粭l語(yǔ)句(一組語(yǔ)句)編譯或者放棄是很方便的,因?yàn)槲覀冇袟l件編譯指令。

比如我們要在不同的操作系統(tǒng)上執(zhí)行代碼,那么就要執(zhí)行不同的代碼,我們就可以使用條件編譯,滿足相應(yīng)的條件,就編譯相應(yīng)的代碼,另外一份代碼就不會(huì)被編譯了。

常見的條件編譯指令:

#if 常量表達(dá)式
//…
#endif
//常量表達(dá)式由預(yù)處理器求值。

#include <stdio.h>#define M 0int main()
{
#if 1 == M  //#if 后面的語(yǔ)句為真,就參與編譯;否則就不參與編譯printf("hehe\n");
#endifreturn 0;
}

條件編譯例子的預(yù)處理
注: #if 條件編譯不滿足是不編譯;而 if 條件語(yǔ)句不滿足是不執(zhí)行,但是它的代碼運(yùn)行時(shí)是存在的。

  1. 多個(gè)分支的條件編譯

#if 常量表達(dá)式
//…
#elif 常量表達(dá)式
//…
#else
//…
#endif

#include <stdio.h>#define M 0int main()
{
#if 1 == Mprintf("hehe\n");
#elif 2 == Mprintf("haha\n");
#elseprintf("heihei\n");
#endifreturn 0;
}

條件編譯例子的預(yù)處理(2)

  1. 判斷是否被定義

#if defined(symbol)
#ifdef symbol

#if !defined(symbol)
#ifndef symbol

#include <stdio.h>#define WIN 0int main()
{
#if defined(WIN)printf("windows");
#endifreturn 0;
}

條件編譯例子的預(yù)處理(3)
也可以這樣寫:

#include <stdio.h>#define WIN 0int main()
{
#ifdef WINprintf("windows");
#endifreturn 0;
}

#include <stdio.h>#define WIN 0int main()
{
#if !defined(WIN)printf("windows\n");
#endifreturn 0;
}

條件編譯例子的預(yù)處理(4)
也可以這樣寫:

#include <stdio.h>#define WIN 0int main()
{
#ifndef WINprintf("windows\n");
#endifreturn 0;
}
  1. 嵌套指令
#if defined(OS_UNIX)#ifdef OPTION1unix_version_option1();#endif#ifdef OPTION2unix_version_option2();#endif
#elif defined(OS_MSDOS)#ifdef OPTION2msdos_version_option2();#endif
#endif

我們?cè)?stdio.h 這個(gè)頭文件中就能看到條件編譯的應(yīng)用:
stdio.h中條件編譯的應(yīng)用


有些人會(huì)將條件編譯當(dāng)注釋來用:

#if 0
int main()
{return 0;
}
#endif#include <stdio.h>int main()
{printf("hehe\n");return 0;
}

3.6 文件包含

我們已經(jīng)知道, #include 指令可以使另外一個(gè)文件被編譯,就像它實(shí)際出現(xiàn)于 #include 指令的地方一樣。

這種替換的方式很簡(jiǎn)單:

預(yù)處理器先刪除這條指令,并用包含文件的內(nèi)容替換。

這樣一個(gè)源文件被包含10次,那就實(shí)際被編譯10次。

3.6.1 頭文件被包含的方式
  • 本地文件包含

#include “filename”

查找策略:先在源文件所在目錄下查找,如果該頭文件未找到,編譯器就像查找?guī)旌瘮?shù)頭文件一樣在標(biāo)準(zhǔn)位置查找頭文件,如果找不到就提示編譯錯(cuò)誤。

Linux環(huán)境的標(biāo)準(zhǔn)頭文件的路徑:

/usr/include

VS環(huán)境的標(biāo)準(zhǔn)頭文件的路徑:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include
//這是VS2013的默認(rèn)路徑

注意按照自己的安裝路徑去找。


  • 庫(kù)文件包含

#include <filename.h>

查找頭文件直接去標(biāo)準(zhǔn)路徑下去查找,如果找不到就提示編譯錯(cuò)誤。

這樣是不是可以說,對(duì)于庫(kù)文件也可以使用 “” 的形式包含?

答案是肯定的,可以。

但是這樣做查找的效率就低些,當(dāng)然這樣也不容易區(qū)分是庫(kù)文件還是本地文件了。

3.6.2 嵌套文件包含

如果出現(xiàn)這樣的場(chǎng)景:
嵌套文件包含
comm.h和comm.c是公共模塊。

test1.h和test1.c使用了公共模塊。

test2.h和test2.c使用了公共模塊。

test.h和test.c使用了test1模塊和test2模塊。

這樣最終程序中就會(huì)出現(xiàn)兩份comm.h的內(nèi)容。這樣就造成了文件內(nèi)容的重復(fù)。

例子如下:
重復(fù)包含頭文件例子

如何解決這個(gè)問題?

答案:條件編譯。

每個(gè)頭文件的開頭寫:

#ifndef __TEST_H__
#define __TEST_H__
//頭文件的內(nèi)容
#endif   //__TEST_H__

或者:

#pragma once

就可以避免頭文件的重復(fù)引入。

例子:

//test.h#ifndef __TEST_H__
#define __TEST_H__int Add(int x, int y);#endif

或者這樣寫:

//test.h#pragma onceint Add(int x, int y);

4. 其他預(yù)處理指令

#error
#pragma
#line

不做介紹,自己去了解。
#pragma pack()在結(jié)構(gòu)體部分介紹。

http://www.risenshineclean.com/news/23028.html

相關(guān)文章:

  • 商丘網(wǎng)站制作軟件西安seo外包優(yōu)化
  • 豐臺(tái)網(wǎng)站制作營(yíng)銷網(wǎng)站定制
  • 如何找人幫我做網(wǎng)站推廣網(wǎng)絡(luò)輿情監(jiān)測(cè)系統(tǒng)軟件
  • 公司做網(wǎng)站合肥網(wǎng)站制作推廣
  • 期刊網(wǎng)站建設(shè)湘潭網(wǎng)頁(yè)設(shè)計(jì)
  • 什么網(wǎng)站做ppt模板百度電話號(hào)碼查詢平臺(tái)
  • 盧灣企業(yè)微信網(wǎng)站制作seo實(shí)戰(zhàn)密碼在線閱讀
  • 手機(jī)網(wǎng)站設(shè)計(jì)案濟(jì)南百度快照推廣公司
  • 基礎(chǔ)建設(shè)龍頭股seo做的比較牛的公司
  • 網(wǎng)站效果圖怎么做seo查詢愛站
  • 怎么申請(qǐng)免費(fèi)企業(yè)郵箱賬號(hào)上海優(yōu)化公司有哪些
  • 服務(wù)專業(yè)建設(shè)武漢官網(wǎng)優(yōu)化公司
  • 做網(wǎng)站費(fèi)用多少錢域名解析ip地址
  • 小熊源碼網(wǎng)新網(wǎng)站百度seo如何做
  • 建設(shè)招標(biāo)網(wǎng)網(wǎng)站網(wǎng)站關(guān)鍵詞優(yōu)化網(wǎng)站推廣
  • 自己做網(wǎng)站 搜索功能開發(fā)杭州網(wǎng)站seo優(yōu)化
  • 滄州手機(jī)建站哪家好濟(jì)南seo外包服務(wù)
  • dw做網(wǎng)站怎么設(shè)置頁(yè)面音樂網(wǎng)站大全軟件下載
  • 公司主頁(yè)怎么填寫seo軟件哪個(gè)好
  • 出國(guó)勞務(wù)信息網(wǎng)seo優(yōu)化網(wǎng)站源碼
  • 做公司網(wǎng)站需要服務(wù)器嗎上海關(guān)鍵詞排名提升
  • 一學(xué)一做短視頻網(wǎng)站杭州市優(yōu)化服務(wù)
  • 重慶網(wǎng)站空間鍵詞排名搜索引擎優(yōu)化的定義
  • 廣州各區(qū)優(yōu)化疫情防控措施seo引擎優(yōu)化公司
  • 做任務(wù)的獎(jiǎng)金網(wǎng)站國(guó)際實(shí)時(shí)新聞
  • 國(guó)務(wù)院建設(shè)部網(wǎng)站seo數(shù)據(jù)是什么意思
  • 什么是網(wǎng)站名稱文件夾寵物美容師寵物美容培訓(xùn)學(xué)校
  • 上海專業(yè)網(wǎng)站建設(shè)機(jī)構(gòu)線上營(yíng)銷平臺(tái)有哪些
  • 哪家公司建設(shè)網(wǎng)站嘉興關(guān)鍵詞優(yōu)化報(bào)價(jià)
  • 網(wǎng)站建設(shè)鼠標(biāo)移動(dòng)變顏色百度seo