日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

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

作者:_雪菜肉絲面_ ? 更新時(shí)間: 2022-06-28 編程語(yǔ)言

小復(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ù),只不過(guò)在預(yù)編譯的階段就會(huì)執(zhí)行。

然后替換掉。

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

舉例:輸出字符串。

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

效果:

在這里插入圖片描述

替換邏輯:遞歸。

看參數(shù)有沒(méi)有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)試模式開(kāi)啟\n");
	}
	else {
		printf("調(diào)試模式關(guān)閉\n");
	}
	return 0;
}

效果:

在這里插入圖片描述

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

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

這種寫(xiě)法也有配套的選擇分支。

#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;
}

效果:

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/qq_37284843/article/details/124522408

欄目分類(lèi)
最近更新