C語言預處理中#和##運算符是什么意思?

一、問題

????????有?認為,在C 語?中使?“#”運算符的就是預處理,是不是呢?“##”?是什么呢?

二、解答

????????在程序中,最為常?的是#define 宏定義指令,下?通過這個指令理解?下“#”的作?。編寫?個預處理指令,代碼如下。

#define S(x) printf("x的平?為%d\n",(x) * (x))
main()
{S(4);
}

????????看到這個程序,很容易理解程序運?結果是什么。程序的運?結果如下所示。

x的平方為16

????????那么,怎樣才能使輸出時的字符 x 被當做需要替換的符號呢?希望能夠在輸出的字符串中包含宏參數,如下代碼就可以滿?這個要求。

#define S(x) printf("#x的平?為%d\n",(x) * (x))
main()
{S(4);
}

????????程序運?結果如下所示。

4的平方為16

????????結果是令?滿意的,那么“#”運算符在預處理指令中的作?也就清晰可見了。它的功能是可以把語?符號轉化為字符串。

????????“##”運算符與“#”運算符?樣,可以?于宏函數的替換部分。這個運算符還可以起到粘合劑的作?,即將兩個語?符號組合成單個語?符號。例如:

#define X(n) n##n
main()
{printf("%d\n", X(3));
}

????????可以得到 n 被宏函數替換成3,并且粘合到?起,得到33。程序運?結果如圖下所示。

33

三、總結

????????C語 ?博?精深,??的運算符“#”和“##”就有如此?的功能,但是它們的功能卻很少有?了解。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16787.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16787.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16787.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人大金倉 KingBase查詢死鎖,釋放死鎖

人大金倉(kingbase)查詢數據庫死鎖及釋放 kingbase鎖表排查以及釋放鎖 總結下 -- 查詢,可自己添加where條件 SELECT * FROM sys_stat_activity WHERE state ! idle AND wait_event_typeLock-- 結束進程 SELECT sys_terminate_backend(pid);

PLC集成BL121PO網關優化智能電網的遠程管理PLC轉OPC UA協議

隨著工業自動化技術的不斷發展,智能電網等復雜系統對于設備之間高效通信的需求日益增加。PLC轉OPC UA協議轉換網關BL121PO作為一款領先的協議轉換設備,通過其獨特的設計和功能,為用戶提供了高效、安全的PLC接入OPC UA的解決方案。 設備概述 …

了解Hive 工作原理:Hive 是如何工作的?

一、概念 1、Hive Apache Hive 是一個分布式的容錯數據倉庫系統,可實現大規模分析和便于使用 SQL 讀取、寫入和管理駐留在分布式存儲中的PB級數據。 Hive是建立在Hadoop之上的數據倉庫框架,它提供了一種類SQL的查詢語言—HiveQL,使得熟悉S…

【深度學習實戰—8】:基于MediaPipe的人臉檢測

?博客主頁:王樂予🎈 ?年輕人要:Living for the moment(活在當下)!💪 🏆推薦專欄:【圖像處理】【千錘百煉Python】【深度學習】【排序算法】 目錄 😺一、Med…

軟件3班20240527

JDK 版本與 Tomcat 的 兼容性

rk3568_spinlock

文章目錄 前言1、spinlock是什么?2、自旋鎖實驗2.1源碼2.2 結果圖總結前言 本文記錄在rk3568開發板做的自旋鎖實驗。通過自旋鎖控制state變量來限制只有一個應用程序來打開驅動設備。 1、spinlock是什么? spinlock稱為自旋鎖,如果獲取不到資源,就只能一直傻傻地等待資源被…

實現銷售與客流雙增長!看看社區零售“排隊王”如何成為頂流?

5月18日至5月26日,北京華聯BHGMall燃情推出了一年一度的2024 Need(你的)BHGDay,接棒“五一”熱潮,獻禮“520”,通過韓式俯拍機、人生四宮格拍攝大賽、真合拍星派對、超級品牌日等豐富多彩的線上線下活動&am…

Python心得(待補充)

Python編程習慣 打開jupyter notebook,用于測試一些小的代碼塊或者函數 Python學習的一些好網站 對于內容少的可以看一遍 對于內容多的,可以當工具書檢索使用 下列網站的知識涵蓋度由淺到深,可以按照(暫定)順序逐個進行檢索,即先…

dynamic與指針

C類型父類與子類的轉換--dynamic_cast - ren_zhg1992 - 博客園 (cnblogs.com) #include <iostream> using namespace std;class Base { public:Base() {};virtual void Show() { cout << "This is Base calss"; } }; class Derived :public Base { publ…

迷你手持小風扇哪個牌子質量好又實惠?這五款不踩雷推薦!

每年夏天&#xff0c;迷你手持小風扇作為消暑神器都會成為市場上的熱銷產品。然而&#xff0c;由于選購經驗有限&#xff0c;許多消費者在面對眾多品牌和型號時&#xff0c;往往難以判斷哪個牌子的迷你小風扇既質量好又價格實惠。在追求性價比的同時&#xff0c;我們也不應忽視…

【設計模式】JAVA Design Patterns——Data Access Object(數據訪問對象模式)

&#x1f50d;目的 對象為某種類型的數據庫或其他持久性機制提供了抽象接口。 &#x1f50d;解釋 真實世界例子 有一組客戶數據需要持久化到數據庫中。 我們需要整個額外的增刪改查操作以便操作客戶數據。 通俗描述 DAO是我們通過基本持久性機制提供的接口。 維基百科 在計算機…

【云原生】kubernetes中的認證、權限設置---RBAC授權原理分析與應用實戰

?? 歡迎大家來到景天科技苑?? &#x1f388;&#x1f388; 養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者簡介&#xff1a;景天科技苑 &#x1f3c6;《頭銜》&#xff1a;大廠架構師&#xff0c;華為云開發者社區專家博主&#xff0c;…

基于UDP的TFTP文件傳輸-實現網盤上傳下載功能

數據傳輸模式&#xff1a;octet(二進制模式) #include<head.h> char* down_up_request(char* buf,char* filename,int rw,int sockfd,struct sockaddr_in in); int download(struct sockaddr_in in,char* filename,char* buf,int sockfd); int upload(struct sockaddr_in…

Flask教程4:Flask數據交互

文章目錄 使用flask處理表單flash閃現的使用Flask實現文件上傳Session的使用為什么session比cookie安全?設置session獲取session的值刪除session的值或清空session所有內容 使用flask處理表單 傳統的前端通用表單&#xff0c;需要前后端共同完成操作&#xff0c;前端需要使用…

百川大模型拿下國產第一,AI助手「百小應」上線,比Kimi強不少

最近幾天&#xff0c;國內 AI 創業公司正在連續刷新大模型的能力上限。 5 月 22 日&#xff0c;百川智能發布最新一代基座大模型 Baichuan 4&#xff0c;同時推出了首款 AI 助手「百小應」。 相較 1 月份發布的 Baichuan 3&#xff0c;新一代模型在各項能力上均有大幅提升&am…

如何與“病態”的人建立友誼:一種基于理解與接納的視角

在我們的生活中&#xff0c;我們經常會遇到一些行為舉止讓我們感到不適或難以理解的人。這些人可能因為他們的某些行為被標簽為“病態”&#xff0c;但真的應該如此簡單地對他們進行評判嗎&#xff1f;本文將探討如何與被視為“病態”的人建立友誼&#xff0c;以及為什么這種接…

分塊優化思想

適用場景 將長區間&#xff08;n&#xff09;的順序枚舉查詢優化至 n \sqrt{n} n ?個塊的順序枚舉&#xff0c;這樣單次查詢枚舉的數量會直接從O&#xff08;n&#xff09;降低至O&#xff08; n \sqrt{n} n ?&#xff09;。 實現手段&#xff1a; &#xff08;1&#xff09…

【云擎未來,智信天下】移動云服務器Docker部署+遠程連接Redis

文章目錄 引言&#xff1a; 移動云&#xff1a;云擎未來&#xff0c;智信天下一、什么是Redis&#xff1f;二、Redis 與其他 key-value 存儲有什么不同&#xff1f;Redis 架構 三、環境準備四、部署流程使用Redis Desktop Manager遠程連接操作數據庫總結與未來展望云擎未來&…

安卓Bug總結

為什么寫這篇文章 安卓十年開發遇到過得Bug做一個總結&#xff0c;大同小異&#xff0c;總結教訓。 這里存放BUG目錄列表 文章列表內容關鍵字Gradle常見問題及總結包括以下問題&#xff1a;gradle插件與gradle home版本關系錯誤、Gradle下載太慢、Executionfailed forJetifyTr…

java nio FileChannel堆內堆外數據讀寫全流程分析及使用(附詳細流程圖)

這里是小奏,覺得文章不錯可以關注公眾號小奏技術 背景 java nio中文件讀寫不管是普通文件讀寫&#xff0c;還是基于mmap實現零拷貝&#xff0c;都離不開FileChannel這個類。 隨便打開RocketMQ 源碼搜索FileChannel 就可以看到使用頻率 kafka也是 所以在java中文件讀寫FileCh…