0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

c语言中的#号知识点分享

冬至子 来源:最后一个bug 作者:未知bug 2022-11-15 14:52 次阅读

/ 常规出牌,首先聊一聊 /

c语言中的#号确实用得挺多的,比如说最开始编程的时候,大家最喜欢的#include…,确实有了这个东西我们就可以调用了我们想调用的东西了,心里必定欢喜!一般代码量,或者阅码量不多的筒子们,可能熟悉的#还有宏定义#define,或者是预编译#if 或者更进一步#ifndef等预编译符号,应该大部分小伙伴不太用到#号的其他功能了!(哈哈,其实我也差不多吧!)所以最近也是学习总结了一些,可能以后也用不太上,可能水平还没达到,不过对于以后阅读各路大神的代码,应该会帮助不少,同时跟大家首先说明一个非常重要的一点,大部分带#的处理都是在预编译阶段,比如说宏定义,预编译,包括后面说到的宏转字符串,连接记号等!

/ 该出一些套路了 /

知识点1:将宏参数转化为字符串

例如,#define BUG(a) #a 这样我们使用BUG(123)表示的就是字符串123直接可以printf(BUG(123));打印出字符串123.

知识点2:将##前后的标记进行合并

例如,#define DEBUG(a) debug##a

这样我们使用的时候int DEBUG(1)=5;其实这样就定义了一个int类型的变量debug1=5;

注意点:对于#和##号,其作为#号的参数和作为##号的参数,即使是另外一个宏也不进行展开,而是作为一个整体以字符串输出,例如,

#define debug(a,b) a##b;

#define var(c) #c

然后我们在程序中使用了var(debug(1,2)),这样我们最终输出的是debug(1,2)这个字符串表达式而不会输出12,如果我们特别想过得12,那么多定义一个宏,#define temp(d) var(d),这样就没有参数debug(1,2)没有直接对应#,最终结果就是12.

对于这两种#号实际应用中的使用,主要是简化代码,也可以说是扩展了宏定义!

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136646
  • 字符串
    +关注

    关注

    1

    文章

    578

    浏览量

    20505
收藏 人收藏

    评论

    相关推荐

    一些小众的C语言知识点

    一些小众的C语言知识点,可能会比较有趣或者怪异,分享给大家看一下。
    发表于 09-26 10:16 658次阅读

    嵌入式C语言知识点总结

    怎么才能做好嵌入式开发?学好C语言吧!今天就来推荐一篇大佬写的嵌入式C语言知识点总结。
    发表于 09-27 09:53 1172次阅读

    C语言链表知识点(2)

    C语言链表知识点(2)
    发表于 08-22 10:38 320次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>链表<b class='flag-5'>知识点</b>(2)

    C51单片机及C语言知识点必备秘籍

      电子发烧友网讯:应广大电子发烧友网读者要求,本电子书《C51单片机及C语言知识点必备秘籍》为《单片机关键知识点全攻略》单片机系列教程及《
    发表于 07-30 13:59 9845次阅读

    【信盈达】C语言知识点的总结

    、算法说明:学习单片机C一般只需要前9个知识点即可进行产品开发,但要学习嵌入式C还需要要掌握:指针、结构体、链表、宏定义等知识点。二、单片机C
    发表于 10-08 14:41

    【每日一知识点C语言中const详解

    )++; //对p指向空间的值进行了修改,程序报错其它语句}5、修饰函数的返回值修饰函数的返回值,返回值不可被改变Const int Fun(void);详细讲解或更多内容可关注我的C语言免费连载视频,更过C
    发表于 03-29 10:53

    关于c语言中数组下标的加减平移知识点总结不看肯定后悔

    关于c语言中数组下标的加减平移知识点总结不看肯定后悔
    发表于 10-14 08:58

    C语言程序小知识点总结

    C语言总结(stm32嵌入式开发)文章目录C语言总结(stm32嵌入式开发)c程序小知识点总结1
    发表于 11-05 07:45

    嵌入式C语言知识点汇总,绝对实用

    了一些这方面的经验和思考,就希望总结下来,系统的阐述嵌入式C语言的重要知识点,就是这篇文章的由来。本文以自己在嵌入式上的实践为基础,在结合相关资料, 阐述嵌入式需要了解的C
    发表于 02-17 06:10

    C51语言的基础知识点实例讲解

    本文档的主要内容详细介绍的是C51语言的18个基础知识点实例讲解包括了:C51控制语句和C51数组和指针
    发表于 06-04 17:52 12次下载
    <b class='flag-5'>C</b>51<b class='flag-5'>语言</b>的基础<b class='flag-5'>知识点</b>实例讲解

    C语言学习入门知识点/干货

    C语言知识点总结
    的头像 发表于 07-18 17:54 5926次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>学习入门<b class='flag-5'>知识点</b>/干货

    汇总和深挖C语言中宏定义所有的知识点

    知识点在刚开始接触时,我感觉比较难懂、不好理解,那么以后不论我花多长时间去研究这个知识点,心里会一直认为该知识点比较难,也就是说第一印象特别的重要。 就比如 C
    的头像 发表于 05-03 18:31 2688次阅读
    汇总和深挖<b class='flag-5'>C</b><b class='flag-5'>语言中</b>宏定义所有的<b class='flag-5'>知识点</b>

    STM32中重要的C语言知识点总结

    的一些例程中,遇到不懂的C语言知识,再去查相关的知识点,这样印象才会深刻些。 下面就列出了一些STM32中重要的C
    的头像 发表于 04-25 16:42 2793次阅读
    STM32中重要的<b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>知识点</b>总结

    嵌入式C语言知识点总结

    导读:怎么做好嵌入式?相信这个问题无论问谁你都会得到一句学好C语言!今天推荐一篇大佬写的嵌入式C语言知识点总结,非常值得一读。
    的头像 发表于 04-13 11:12 2699次阅读

    C语言最重要的知识点

    C语言知识点总结.doc
    发表于 02-16 16:37 9次下载