在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【C語言進階】如何靈活利用宏定義做字符串轉換

嵌入式物聯網開發 ? 來源:嵌入式物聯網開發 ? 作者:嵌入式物聯網開發 ? 2022-08-29 08:51 ? 次閱讀

今天在恰好在項目開發的過程中,遇到了一個有關宏定義的問題。

項目運用的背景如下:

項目中有個頭文件中定義了一個宏定義,比如是 #define CFG_LOGGER_NAME uart

然后,在某個C文件中需要講這個3轉換成對應的字符串類型,即為"uart";很明顯,如果按以下的幾種方式定義,肯定得不到期望的結果:

方式1: #defineCFG_LOGGER_NAME_STR "CFG_LOGGER_NAME"

方式2: #defineCFG_LOGGER_NAME_STR #CFG_LOGGER_NAME

方式3: #defineCFG_LOGGER_NAME_STR ##CFG_LOGGER_NAME

為了解決這個問題,特意再次去查看了有關C語言宏定義的語法,終于找到了解決方法,具體的思路是,需要用一個“中間宏函數”做轉換:

#define CFG_LOGGER_NAME uart

#define TO_STRING(x) #x

#define _CFG_LOGGER_NAME_STR(x) TO_STRING(x)

#defineCFG_LOGGER_NAME_STR _CFG_LOGGER_NAME_STR(CFG_LOGGER_NAME)

就這樣,經過上面的宏定義處理后,訪問CFG_LOGGER_NAME_STR的值,取到的就是期望值"uart".

雖然方法很簡單,但是里面卻包含了宏定義最基礎的語法知識,有機會可以再多多補充下宏定義相關的知識。

——————————————————————————————————————

附錄,demo測試如下:

demo1demo2


審核編輯:湯梓紅

?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140528
  • 字符串
    +關注

    關注

    1

    文章

    589

    瀏覽量

    21142
  • 宏定義
    +關注

    關注

    0

    文章

    51

    瀏覽量

    9186
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    C++字符串string

    string是C++編程語言中的字符串。在C++中字符串處理可以使用c
    的頭像 發表于 07-10 00:26 ?1899次閱讀
    <b class='flag-5'>C</b>++<b class='flag-5'>字符串</b>string

    C語言定義的使用技巧

    #define命令是C語言中的一個定義命令,它用來將一個標識符定義為一個字符串,該標識符被稱為
    發表于 09-05 10:12 ?1581次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中<b class='flag-5'>宏</b><b class='flag-5'>定義</b>的使用技巧

    C語言教程之字符串替換

    C語言教程之字符串替換,很好的C語言資料,快來學習吧。
    發表于 04-25 15:49 ?0次下載

    C語言教程之回文字符串

    C語言教程之回文字符串,很好的C語言資料,快來學習吧。
    發表于 04-25 15:49 ?0次下載

    C語言字符串轉數字實現方法

    C/C++語言中沒有專門的字符串變量,通常用字符數組來存放字符串。
    發表于 11-14 17:50 ?1.4w次閱讀

    C語言字符串匹配和數據提取源碼

    C語言字符串匹配與數據提取源碼
    的頭像 發表于 02-27 15:42 ?2640次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>字符串</b>匹配和數據提取源碼

    C++之字符串類學習的總結

    一般我們在c語言要實現對字符串操作的話,一般是采用字符數組或者一組函數來實現的,為啥這樣呢,那是因為c
    的頭像 發表于 12-24 16:24 ?934次閱讀

    C語言編程字符串函數匯總資源下載

    C語言編程字符串函數匯總資源下載
    發表于 04-15 16:18 ?9次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>編程<b class='flag-5'>字符串</b>函數匯總資源下載

    C語言總結_字符串全方位練習

    C語言字符串全方位練習,涉及知識點:字符串解析、大小寫判斷、字符串插入、字符串刪除、
    的頭像 發表于 08-14 09:41 ?1789次閱讀

    C語言-字符串處理

    字符串C語言里使用非常多,因為很多數據處理都是文本,也就是字符串,特別是設備交互、web網頁交互返回的幾乎都是文本數據。 這篇文章就介紹字符串
    的頭像 發表于 08-14 10:05 ?2040次閱讀

    C語言中的定義

    #define命令是C語言中的一個定義命令,它用來將一個標識符定義為一個字符串,該標識符被稱為
    的頭像 發表于 09-28 16:05 ?3855次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>宏</b><b class='flag-5'>定義</b>

    C語言字符串的引用方式

    C語言程序中,字符串是存放在字符數組中的。 2. 用字符數組存放一個字符串,可以通過數組名和
    的頭像 發表于 03-10 14:57 ?2249次閱讀

    C語言定義字符串的幾種方法

    C語言定義字符串有哪些方法?
    的頭像 發表于 03-31 09:41 ?3923次閱讀

    c語言字符串定義

    字符串定義、初始化、操作和常見問題。 字符串定義和初始化 在C語言中,
    的頭像 發表于 11-24 10:02 ?2533次閱讀

    C語言字符串編譯函數介紹

    C語言中,字符串實際上是使用null字符O'終止的一維字符數組。因此,一個以null結尾的
    的頭像 發表于 03-07 16:18 ?672次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>字符串</b>編譯函數介紹
    主站蜘蛛池模板: 深爱五月激情五月 | 成人网在线看 | 婷婷在线观看网站 | 天天做天天爽天天谢 | 色视频网站在线 | 久久精品免费看 | 日本不卡高清免费 | 色五五月| 天天拍拍天天爽免费视频 | 国产毛片一区二区三区精品 | 一个色在线| 多男一女一级淫片免费播放口 | 亚洲视频一区 | 毛片毛片| 免费大片av手机看片 | 亚洲第8页| 又黄又湿又爽吸乳视频 | 九九九精品午夜在线观看 | 午夜看片| 性过程很黄的小说男男 | 亚洲一区免费看 | 亚洲人成综合网站在线 | 亚洲免费一级视频 | 国产精品久久久久久免费播放 | 9色在线| 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 天天做天天爰夜夜爽 | 99久久999久久久综合精品涩 | 成年香蕉大黄美女美女 | 免费任我爽橹视频在线观看 | 欧美成人a | 很黄很黄的网站免费的 | 四虎影在线永久免费观看 | 女人张开双腿让男人桶爽免 | 黄色网在线播放 | 老湿成人影院 | 国产高清毛片 | 天天舔天天射 | 婷婷综合 在线 | 久久久精品免费国产四虎 | 末发育女一区二区三区 |