1. 前言
使用#把宏參數變為一個字符串,用##把兩個宏參數貼合在一起.
2. 一般用法
3. 注意事項
3.1 舉例
兩句print會被展開為:
分析:
由于AGE是宏,且作為宏toString和conStr的參數,并且宏conStr和toString中均含有#或者##符號,所以A不能被解引用。導致不符合預期的情況出現。
3.2 解決方案
結果:
責任編輯:xj
原文標題:C語言中"#"和"##"的用法
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7627瀏覽量
139634 -
編程
+關注
關注
88文章
3671瀏覽量
94682
原文標題:C語言中"#"和"##"的用法
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
技術干貨驛站 ▏深入理解C語言:嵌套循環與循環控制的底層原理
大家好!在上一節中,我們學習了C語言中的基本循環語句,如for、while和do...while循環。今天,我們將進一步探討嵌套循環和循環控制,這些技巧可以幫助我們實現更復雜的邏輯操作。無論是處理

深入理解C語言:循環語句的應用與優化技巧
能讓你的代碼更加簡潔明了,還能顯著提升程序執行效率。本文將詳細介紹C語言中的三種常見循環結構——while循環、for循環和do...while循環,帶你深入理解它

C語言中申請的堆內存能不能自動釋放
C語言中申請的堆內存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。 學過 C++ 的同學,應該首先能想到智能指針。 但是這是C語言
C語言中的頭文件能不能重復包含
C語言中的頭文件能不能重復包含? 比如代碼寫成這樣,stdio.h 連續包含了兩次。 #include #include int main(){ printf("helloworld
技術干貨驛站 ▏深入理解C語言:掌握C語言條件判斷,從if到switch的應用
在編程中,條件判斷語句是控制程序流程的核心元素之一。它們使得程序能夠根據不同的輸入和狀態,做出相應的決策。特別是在C語言中,條件判斷語句的使用極為廣泛,涵蓋了從簡單的if語句到更復雜的switch

C語言中的socket編程基礎
Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
C語言與Java語言的對比
C語言和Java語言都是當前編程領域中的重要成員,它們各自具有獨特的優勢和特點,適用于不同的應用場景。以下將從語法特性、內存管理、跨平臺性、性能、應用領域等多個方面對C
c語言中從左到右結合怎么看
在C語言中,操作符的結合性(Associativity)是指當操作符在表達式中連續出現時,它們如何與操作數結合的順序。對于大多數二元操作符(即需要兩個操作數的操作符),C語言遵循兩種基
技術干貨驛站 ▏深入理解C語言:基本數據類型和變量
在C語言中,數據類型和變量是編程的基礎,也是理解更復雜概念的關鍵。數據類型決定了變量的內存分配、存儲范圍和操作方式,而變量則是存儲數據的容器。本篇文章將從基本數據類型和變量兩個方面,帶你深入了解C

c語言怎么做可視化界面
介紹如何使用C語言開發可視化界面,包括所需的庫、工具和開發步驟。 選擇合適的圖形庫 為了在C語言中創建可視化界面,我們需要選擇一個合適的圖形庫。以下是一些流行的
評論