最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言簡(jiǎn)明講解預(yù)編譯的使用

 更新時(shí)間:2022年05月04日 11:46:32   作者:_雪菜肉絲面_  
在C語言的程序中包括各種以符號(hào)#開頭的編譯指令,這些指令稱為預(yù)處理命令。預(yù)處理命令屬于C語言編譯器,而不是C語言的組成部分,通過預(yù)處理命令可擴(kuò)展C語言程序設(shè)計(jì)的環(huán)境

小復(fù)習(xí)

預(yù)處理,預(yù)編譯是編譯的第一步。

會(huì)有三件基本的事情發(fā)生:

  • 引入#include
  • 去除注釋
  • 修改#define

1、內(nèi)置符號(hào)

這些符號(hào)都可以直接使用:

__FILE__            點(diǎn)c文件全名
__LINE__            當(dāng)前行號(hào)
__DATE__            編譯日期
__TIME__            編譯時(shí)間

舉例:

#include<stdio.h>
int main() {
	printf("文件全名:%s\n", __FILE__);
	printf("當(dāng)前運(yùn)行行號(hào):%d\n", __LINE__);
	printf("編譯日期:%s\n", __DATE__);
	printf("編譯時(shí)間:%s\n", __TIME__);
	return 0;
}

效果:

在這里插入圖片描述

2、自定義符號(hào)

#define 名 值

不帶分號(hào)。預(yù)編譯階段,所有名字會(huì)被值替換。

舉例:給printf取個(gè)別名。

#include<stdio.h>
#define say printf
int main() {
	say("你好,世界!\n");
	return 0;
}

效果:

在這里插入圖片描述

舉例:自定義一個(gè)死循環(huán)符號(hào)。

#include<stdio.h>
#define loop while(1)
int main() {
	int i = 0;
	loop{
		if (i > 1000) {
			break;
		}
		else {
			printf("你好,世界!\t%d\n",i);
			i++;
		}
	}
	return 0;
}

效果:

在這里插入圖片描述

3、自定義宏

和自定義符合差不多。

相當(dāng)于函數(shù),只不過在預(yù)編譯的階段就會(huì)執(zhí)行。

然后替換掉。

#define 名 ( 參數(shù)列表 ) 表達(dá)式

舉例:輸出字符串。

#include<stdio.h>
#define say(s)printf(s)
int main() {
	say("你好,世界!\n");
	return 0;
}

效果:

在這里插入圖片描述

替換邏輯:遞歸。

看參數(shù)有沒有define,有就套娃。

直到?jīng)]有,替換自己。

字符串內(nèi)部的符號(hào)會(huì)被忽略。

4、條件編譯

可以用#define定義一個(gè)符號(hào),代表是否要執(zhí)行。

#include<stdio.h>
#define __DEBUG__ 1
int main() {
	if (__DEBUG__) {
		printf("調(diào)試模式開啟\n");
	}
	else {
		printf("調(diào)試模式關(guān)閉\n");
	}
	return 0;
}

效果:

在這里插入圖片描述

同時(shí),可以讓這段代碼直接跳過編譯。

#include<stdio.h>
#define __DEBUG__ 1
int main() {
#if __DEBUG__
	printf("調(diào)試模式開啟\n");
#endif
	return 0;
}

這種寫法也有配套的選擇分支。

#include<stdio.h>
#define __DEBUG__ 0
#define __WARN__ 1
int main() {
#if __DEBUG__
	printf("調(diào)試模式\n");
#elif __WARN__
	printf("警告模式\n");
#else
	printf("正常模式\n");
#endif
	return 0;
}

效果:

在這里插入圖片描述

到此這篇關(guān)于C語言簡(jiǎn)明講解預(yù)編譯的使用的文章就介紹到這了,更多相關(guān)C語言預(yù)編譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在C++?中慎用setjmp和longjmp解析

    在C++?中慎用setjmp和longjmp解析

    setjmp和longjmp是C語言中用于實(shí)現(xiàn)非局部跳轉(zhuǎn)的函數(shù),setjmp和longjmp 是 C 語言中一個(gè)很強(qiáng)大的函數(shù),這篇文章主要介紹了在C++?中慎用setjmp和longjmp的相關(guān)知識(shí),需要的朋友可以參考下
    2023-06-06
  • vs2019配置Qt5開發(fā)環(huán)境(圖文教程)

    vs2019配置Qt5開發(fā)環(huán)境(圖文教程)

    本文主要介紹了如何使用visual studi2019配置qt5開發(fā)環(huán)境,以及創(chuàng)建qt項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 解決在Mac下直接解壓C++靜態(tài)庫出現(xiàn)的問題

    解決在Mac下直接解壓C++靜態(tài)庫出現(xiàn)的問題

    最近在研究C++的各種編譯構(gòu)建過程,學(xué)習(xí)了一下cmake,gyp/ninja這些自動(dòng)化構(gòu)建工具后,想著自己試下用純命令行跑一遍編譯流程。在試圖把C++靜態(tài)庫編譯為動(dòng)態(tài)庫的過程中遇到了棘手的問題,找了好久后發(fā)現(xiàn)是跟Mac平臺(tái)相關(guān)的,這里記錄一下,望對(duì)遇到類似問題的童鞋有幫助。
    2016-12-12
  • C/C++實(shí)現(xiàn)動(dòng)態(tài)庫動(dòng)態(tài)加載

    C/C++實(shí)現(xiàn)動(dòng)態(tài)庫動(dòng)態(tài)加載

    在很多項(xiàng)目中,我們多少會(huì)用到第三方動(dòng)態(tài)庫,這些動(dòng)態(tài)庫一般都是相對(duì)固定,使用也很簡(jiǎn)單,下面我們就來看看c/c++中如何實(shí)現(xiàn)動(dòng)態(tài)庫動(dòng)態(tài)加載吧
    2024-01-01
  • C++深入刨析優(yōu)先級(jí)隊(duì)列priority_queue的使用

    C++深入刨析優(yōu)先級(jí)隊(duì)列priority_queue的使用

    最近我學(xué)習(xí)了C++中的STL庫中的優(yōu)先級(jí)隊(duì)列(priority_queue)容器適配器,對(duì)于優(yōu)先級(jí)隊(duì)列,我們不僅要會(huì)使用常用的函數(shù)接口,我們還有明白這些接口在其底層是如何實(shí)現(xiàn)的
    2022-08-08
  • C++調(diào)用EasyX庫實(shí)現(xiàn)嫦娥奔月小游戲

    C++調(diào)用EasyX庫實(shí)現(xiàn)嫦娥奔月小游戲

    這篇文章主要為大家詳細(xì)介紹了C++如何調(diào)用EasyX庫編寫一個(gè)簡(jiǎn)單的嫦娥奔月小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-09-09
  • C++ 系統(tǒng)String類詳解

    C++ 系統(tǒng)String類詳解

    這篇文章主要介紹了C++的系統(tǒng)String類,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • C語言Easyx實(shí)現(xiàn)貪吃蛇詳解

    C語言Easyx實(shí)現(xiàn)貪吃蛇詳解

    這篇文章主要為大家詳細(xì)介紹了基于easyx的C++實(shí)現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C++可變參數(shù)的實(shí)現(xiàn)方法

    C++可變參數(shù)的實(shí)現(xiàn)方法

    可變參數(shù)給編程帶來了很大的方便,在享受它帶來的方便的同時(shí),很有必要了解一下其實(shí)現(xiàn)方式,在了解編程語言的同時(shí),也可以擴(kuò)展編程的思路。
    2013-03-03
  • 淺析ORB、SURF、SIFT特征點(diǎn)提取方法以及ICP匹配方法

    淺析ORB、SURF、SIFT特征點(diǎn)提取方法以及ICP匹配方法

    這篇文章主要為大家介紹了常用的特征點(diǎn)提取方法(ORB、SURF、SIFT)和ICP匹配方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12

最新評(píng)論

沅陵县| 河池市| 华亭县| 太原市| 保靖县| 浦北县| 昔阳县| 四子王旗| 江都市| 外汇| 湟源县| 清丰县| 双流县| 甘洛县| 荣成市| 漯河市| 乌兰察布市| 托克逊县| 西吉县| 子长县| 南宫市| 美姑县| 辽阳县| 南涧| 梧州市| 达日县| 临武县| 公主岭市| 青冈县| 宁阳县| 英吉沙县| 台安县| 苏尼特左旗| 江达县| 莆田市| 丁青县| 茂名市| 泾川县| 安仁县| 大洼县| 彰化市|