亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言簡明講解預編譯的使用

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

小復習

預處理,預編譯是編譯的第一步。

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

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

1、內(nèi)置符號

這些符號都可以直接使用:

__FILE__            點c文件全名
__LINE__            當前行號
__DATE__            編譯日期
__TIME__            編譯時間

舉例:

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

效果:

在這里插入圖片描述

2、自定義符號

#define 名 值

不帶分號。預編譯階段,所有名字會被值替換。

舉例:給printf取個別名。

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

效果:

在這里插入圖片描述

舉例:自定義一個死循環(huán)符號。

#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、自定義宏

和自定義符合差不多。

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

然后替換掉。

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

舉例:輸出字符串。

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

效果:

在這里插入圖片描述

替換邏輯:遞歸。

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

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

字符串內(nèi)部的符號會被忽略。

4、條件編譯

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

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

效果:

在這里插入圖片描述

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

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

效果:

在這里插入圖片描述

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

相關文章

  • C++中的四種類型轉(zhuǎn)換

    C++中的四種類型轉(zhuǎn)換

    類型轉(zhuǎn)換有c風格的,當然還有c++風格的。c風格的轉(zhuǎn)換的格式很簡單(TYPE)EXPRESSION,但是c風格的類型轉(zhuǎn)換有不少的缺點,有的時候用c風格的轉(zhuǎn)換是不合適的,因為它可以在任意類型之間轉(zhuǎn)換,
    2015-08-08
  • c++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)

    c++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)

    下面小編就為大家?guī)硪黄猚++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 簡要說明C語言中指針函數(shù)與函數(shù)指針的區(qū)別

    簡要說明C語言中指針函數(shù)與函數(shù)指針的區(qū)別

    這篇文章主要介紹了C語言中指針函數(shù)與函數(shù)指針的區(qū)別,指針函數(shù)和函數(shù)指針是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2016-04-04
  • 一文帶你快速了解C/C++標準庫中的ptrdiff_t

    一文帶你快速了解C/C++標準庫中的ptrdiff_t

    ptrdiff_t是C/C++標準庫中定義的一個與機器相關的數(shù)據(jù)類型,ptrdiff_t類型變量通常用來保存兩個指針減法操作的結(jié)果,下面這篇文章主要給大家介紹了關于C/C++標準庫中ptrdiff_t的相關資料,需要的朋友可以參考下
    2022-11-11
  • DEVC++實現(xiàn)推箱子小游戲

    DEVC++實現(xiàn)推箱子小游戲

    這篇文章主要為大家詳細介紹了DEVC++實現(xiàn)推箱子小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C++中replace()函數(shù)使用方法匯總

    C++中replace()函數(shù)使用方法匯總

    這篇文章主要介紹了C++中replace()函數(shù)使用方法匯總,在這篇文章中為大家詳細介紹C++ replace()函數(shù)的各種應用方式,希望朋友們可以從這里介紹的內(nèi)容充分掌握這一應用技巧
    2015-11-11
  • 詳解QML?調(diào)用?C++?中的內(nèi)容

    詳解QML?調(diào)用?C++?中的內(nèi)容

    這篇文章主要介紹了QML?怎么調(diào)用?C++?中的內(nèi)容,這里主要是總結(jié)一下,怎么在 QML 文件中引用 C ++ 文件里定義的內(nèi)容,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • C++17中std::string_view的使用

    C++17中std::string_view的使用

    std::string_view是C++17標準庫中的一種新類型,它提供了對一個字符序列的非擁有式視圖,本文主要介紹了C++17中std::string_view的使用,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • C語言折半查找法的由來及使用詳解

    C語言折半查找法的由來及使用詳解

    折半查找法也叫做?分查找,顧名思義就是把數(shù)據(jù)分成兩半,再判斷所查找的key在哪?半中,再重復上述步驟知道找到?標key,下面這篇文章主要給大家介紹了關于C語言折半查找法的相關資料,需要的朋友可以參考下
    2022-08-08
  • 簡單掌握C++編程中的while與do-while循環(huán)語句使用

    簡單掌握C++編程中的while與do-while循環(huán)語句使用

    這篇文章主要介紹了C++編程中的while與do-while循環(huán)語句使用,區(qū)別就是while是先判斷再執(zhí)行,而do-while是先執(zhí)行再判斷,需要的朋友可以參考下
    2016-01-01

最新評論