侵权投诉

C语言中#和##符号有什么样的作用

2020-02-24 10:56 次阅读

1、#的预处理作用

预处理过程实质上是处理“#”,包括:

将#include包含的头文件直接拷贝到.c当中;

将#define定义的宏进行替换;

将#if #else #endif定义的无用代码过滤掉;

将代码中没用的注释部分删除等。

从而生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。

上面中符号“#”表示这是一条预处理命令,凡是以“#”开头的一般均为预处理命令,比如:

#include:是包含头文件命令,声明在这个地方插入别的文件中的代码;

#define 标识符 被标识符代表的字符串:其中,“define”为宏定义命令,“标识符”为所定义的宏名;

#if #else #endif:是条件编译命令,加上符号“#”的作用是:#if是编译器在编译代码时完成的,if是在程序在运行时完成的,两者的执行时期不同。

2、#的字符串化作用

符号 # 也称为字符串化运算符(stringify operator 或 stringizing operator),它会把宏调用时的实参转换为字符串。见下面的代码示例。

3、##的连接符作用

符号 ## 则是连接符号,由两个井号组成,其功能是在带参数的宏定义中将两个子串联接起来,从而形成一个新的子串。

代码示例如下:

#和##的作用

在上面这个例子中,show(6) 中的 #n 被当成了一个字符串“#6”,与前面的“result_”和后面的“: %d\n”连到一起,组成“result_6: %d\n”;而 result_##n,则替换为 result_6。

因此,show(6)也就变成:

printf("result_6: %d\n", result_6)

程序运行结果则如上图所示:

result_6: 666

收藏 人收藏
分享:

评论

相关推荐

单片机C语言软件开发系统Keil C51的使用教程

KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,但是界面是英文的好多初学者....
的头像 Wildesbeast 发表于 05-30 11:01 271次 阅读
单片机C语言软件开发系统Keil C51的使用教程

单片机C语言编程:H文件与.C文件的关系

经过查找资料得知,.H文件就是头文件,估计就是Head的意思吧,这是规范程序结构化设计的需要,既可以....
的头像 张飞实战电子 发表于 05-30 10:42 165次 阅读
单片机C语言编程:H文件与.C文件的关系

手写SQL编译器——文法介绍

精读《手写 SQL 编译器 - 文法介绍》
发表于 05-29 13:35 8次 阅读
手写SQL编译器——文法介绍

请问c语言现在的就业形式如何?

随着网络的推进,各种操作系统及应用程序在嵌入式系统中应用较广,只会C语言就业如何? ...
发表于 05-29 10:19 16次 阅读
请问c语言现在的就业形式如何?

做的课程设计要求用c语言,大神能给每一行都做一下注释吗?

做的课程设计要求用c语言,但写完后太长,大神能给每一行都做一下注释吗? #include unsigned char ps[]={1,2,3,4,5}; unsigne...
发表于 05-29 08:57 20次 阅读
做的课程设计要求用c语言,大神能给每一行都做一下注释吗?

请问是在下面的代码中加入自己的密码吗

请问是在下面的代码中加入自己的密码吗,这个函数没有找到调用的地方,会执行吗 // // CsmUnlock - This function unlocks ...
发表于 05-29 08:52 13次 阅读
请问是在下面的代码中加入自己的密码吗

30个含C语言源码系统仿真实例资料合集免费下载

本文档的主要内容详细介绍的是30个含C语言源码系统仿真实例资料合集免费下载包括了:1、数字电路4线步....
发表于 05-29 08:00 20次 阅读
30个含C语言源码系统仿真实例资料合集免费下载

使用C#程序实现JY60六轴姿态传感器的演示代码

本文档的主要内容详细介绍的是使用C#程序实现JY60六轴姿态传感器的演示代码。
发表于 05-29 08:00 36次 阅读
使用C#程序实现JY60六轴姿态传感器的演示代码

如何在微信小程序的框架里编程?

如何在微信小程序的框架里编程?用什么语言? 用C语言还是JavaScript还有html5及css? ...
发表于 05-29 03:20 15次 阅读
如何在微信小程序的框架里编程?

51单片机C语言创新教程PDF电子书免费下载

《51单片机c语言创新教程》以宏晶公司的stc89c52rc单片机为蓝本,由浅人深,并结合smart....
发表于 05-28 17:31 57次 阅读
51单片机C语言创新教程PDF电子书免费下载

LCD1602的C语言程序和工程文件免费下载

本文档的主要内容详细介绍的是LCD1602的C语言程序和工程文件免费下载。
发表于 05-28 16:30 32次 阅读
LCD1602的C语言程序和工程文件免费下载

温度数码管的C语言和工程文件免费下载

本文档的主要内容详细介绍的是温度数码管的C语言和工程文件免费下载。
发表于 05-28 16:30 25次 阅读
温度数码管的C语言和工程文件免费下载

推荐收藏!C语言入门基础知识大全

01C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认...
发表于 05-28 09:40 185次 阅读
推荐收藏!C语言入门基础知识大全

代码中的标颜色的语句中19.61的作用和目的是什么?

#include #define uchar unsigned char #define uint unsigned int uchar code table[]={ 0x3F,/*0*/      ...
发表于 05-28 08:56 357次 阅读
代码中的标颜色的语句中19.61的作用和目的是什么?

自己手打出来的代码为什么会输给一个软件框架呢?

近年来,企业管理软件开发领域掀起了一阵快速开发平台的风气,很多人觉得这是开发界有人带的节奏,很快就会....
发表于 05-27 15:16 42次 阅读
自己手打出来的代码为什么会输给一个软件框架呢?

如何选择低代码开发平台,分析平台的解决方案

随着信息技术对人们工作生活的影响越来越大,人们对于应用程序的依赖性也越来越大,越来越多的人使用应用程....
发表于 05-27 15:14 77次 阅读
如何选择低代码开发平台,分析平台的解决方案

请问圈出的那里什么么意思?

发表于 05-27 09:48 36次 阅读
请问圈出的那里什么么意思?

请问SafetyMCU_Bootloader这个代码包怎么配置呢?

从官网下PDF手册,里面有这个代码包的链接。下下来以后导入时候提示要求ARMv5.1的编译器,我在CCS5.4中下载了5.1.7。之...
发表于 05-27 08:05 7次 阅读
请问SafetyMCU_Bootloader这个代码包怎么配置呢?

深度学习框架Tensorflow的安装和基础实战教程免费下载

Tensorflow 的安装分为 Windows 安装和 Linux 安装,实际应用中我们推荐使用 ....
发表于 05-27 08:00 23次 阅读
深度学习框架Tensorflow的安装和基础实战教程免费下载

使用单片机实现LCD显示电话拨号键盘按键的设计论文免费下载

 电话在人们的日常生活中是比较的常见的电子产品之一,它已进入我们的每一个家庭。本文设计了一款基于单片....
发表于 05-27 08:00 52次 阅读
使用单片机实现LCD显示电话拨号键盘按键的设计论文免费下载

请问下面的代码代表什么意思?

我想问大家,这个问题,谢谢大牛! 这段代码意思是不是当换行符输入时循环跳过啊 while (getchar()!='\n')    &n...
发表于 05-27 06:58 15次 阅读
请问下面的代码代表什么意思?

8051单片机C语言软件设计的艺术PDF电子书免费下载

本书主要介绍了8051单片机C语言软件设计的思维与解决方法。本书每一章都是一个精彩的例子,范例说明深....
发表于 05-26 17:32 49次 阅读
8051单片机C语言软件设计的艺术PDF电子书免费下载

高级语言程序设计从菜鸟到大师深入C语言程序设计PDF电子书免费下载

本文档的主要内容详细介绍的是高级语言程序设计从菜鸟到大师深入C语言程序设计PDF电子书免费下载。 ....
发表于 05-25 16:21 37次 阅读
高级语言程序设计从菜鸟到大师深入C语言程序设计PDF电子书免费下载

C++编程的经典作业和答案免费下载

本文档的主要内容详细介绍的是C++编程的经典作业和答案免费下载。
发表于 05-25 08:00 34次 阅读
C++编程的经典作业和答案免费下载

单片机原理及应用实验的电路图和代码免费下载

本文档的主要内容详细介绍的是单片机原理及应用实验的电路图和代码免费下载。
发表于 05-25 08:00 60次 阅读
单片机原理及应用实验的电路图和代码免费下载

Proteus8.9 VSM Studio GCC编译器仿真STM32F407ZGT6系列011_lcd1602并口

一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示) 图1 二,调整原理图大小,适合可视,....
的头像 Proteus仿真 发表于 05-22 11:44 247次 阅读
Proteus8.9 VSM Studio GCC编译器仿真STM32F407ZGT6系列011_lcd1602并口

LabVIEW的编程经验教程免费下载

当我开始在键盘上敲打出这句话的时候,我已经使用 LabVIEW 7 年了。7 年的时间,就算天赋平平....
发表于 05-22 08:00 35次 阅读
LabVIEW的编程经验教程免费下载

红外线多功能电子钟的C语言和工程文件免费下载

(1) 进行实时时钟显示功能(达到正点时,自动报时) (2) 时间校准功能 液晶能够显示年月日星期时....
发表于 05-22 08:00 34次 阅读
红外线多功能电子钟的C语言和工程文件免费下载

单片机水塔控制系统的C语言资料免费下载

本文档的主要内容详细介绍的是单片机水塔控制系统的C语言资料免费下载。
发表于 05-21 15:55 53次 阅读
单片机水塔控制系统的C语言资料免费下载

单片机与嵌入式系统的学习课件合集免费下载

本文档的主要内容详细介绍的是单片机与嵌入式系统的学习课件合集免费下载包括了:单片微型计算机概述及预备....
发表于 05-21 08:00 77次 阅读
单片机与嵌入式系统的学习课件合集免费下载

C语言的学习课件资料合集免费下载

C语言是目前世界上最流行和实用的一种计算机高级程序设计语言。最初的C语言只是为描述和实现UNIX操作....
发表于 05-21 08:00 34次 阅读
C语言的学习课件资料合集免费下载

一些基础的C语言程序及其源代码资料合集免费下载

本文档的主要内容详细介绍的是一些基础的C语言程序及其源代码资料合集免费下载。
发表于 05-21 08:00 31次 阅读
一些基础的C语言程序及其源代码资料合集免费下载

TF-IDF的基础模型和使用教程和算法代码免费下载

这是一个tf-idf的算法包,里面包含的基础模型,使用教程和算吗代码。
发表于 05-21 08:00 42次 阅读
TF-IDF的基础模型和使用教程和算法代码免费下载

C语言编译器PICC9.60破解版应用程序免费下载

本文档的主要内容详细介绍的是C语言编译器PICC9.60破解版应用程序免费下载。
发表于 05-21 08:00 32次 阅读
C语言编译器PICC9.60破解版应用程序免费下载

四元数姿态更新方法公示版C语言版免费下载

本文档的主要内容详细介绍的是四元数姿态更新方法公示版C语言版免费下载。
发表于 05-21 08:00 18次 阅读
四元数姿态更新方法公示版C语言版免费下载

智能彩灯五路产品原型的代码实现(三明治开发板+Arduino,Wi-Fi)

概况 本文档主要介绍智能彩灯五路产品原型的应用代码部分,关于环境搭建、SDK移植、下载调试。 步骤 ....
发表于 05-20 15:15 132次 阅读
智能彩灯五路产品原型的代码实现(三明治开发板+Arduino,Wi-Fi)

嵌入式入门指导

C语言:嵌入式编程大多用C语言、少量汇编,先学习C语言,汇编用到的时候再上网查询。教材:随便一本C语....
发表于 05-20 10:15 46次 阅读
嵌入式入门指导

使用C语言在Linux环境下运行推箱子游戏的代码免费下载

本文档的主要内容详细介绍的是使用C语言在Linux环境下运行推箱子游戏的代码免费下载,现在分享给大家....
发表于 05-19 08:00 33次 阅读
使用C语言在Linux环境下运行推箱子游戏的代码免费下载

实现Hello Arduino实验的详细资料说明

一个程序员退休后喜欢书法,有一天,他饭后突然有审美情绪,所以准备“文房四宝”,毛,墨, 纸,研,颇有....
发表于 05-19 08:00 59次 阅读
实现Hello Arduino实验的详细资料说明

office公式输入快捷方式和数学自动更正符号表

该死的微软把这个叫做“数学自动更正符号”,害我找半天才知道这就是我一直想要的公式输入快捷代码。(此方....
发表于 05-19 08:00 40次 阅读
office公式输入快捷方式和数学自动更正符号表

单片机的C语言驱动程序资料合集免费下载

本文档的主要内容详细介绍的是单片机的C语言驱动程序资料合集免费下载。
发表于 05-18 08:00 68次 阅读
单片机的C语言驱动程序资料合集免费下载

使用单片机实现广告灯左右移动的设计说明

做单一广告灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0....
的头像 Wildesbeast 发表于 05-16 11:49 1071次 阅读
使用单片机实现广告灯左右移动的设计说明

低代码开发平台的主要服务对象和模式

随着企业软件需求的不断增长,传统的软件开发模式开发周期过长没有办法满足企业的需求,所以现在出现了低代....
发表于 05-14 15:21 44次 阅读
低代码开发平台的主要服务对象和模式

缩进就有那么重要?

我们写出来的代码不只是写给处理器运行的,还需要同行、经理审查、阅读以完成协作,更重要的是在日后代码维....
的头像 单片机技术宅 发表于 05-14 15:03 191次 阅读
缩进就有那么重要?

嵌入式C语言的自我修养:这样编出来的代码简直行云流水!

为编写出高质量嵌入式软件,从嵌入式软件安全及可靠性出发,本规范对由于C语言标准、C语言本身、C编译器....
的头像 单片机精讲吴鉴鹰 发表于 05-14 14:43 728次 阅读
嵌入式C语言的自我修养:这样编出来的代码简直行云流水!

极简把三千行代码重构为15行

这个系统非常的庞大,尤其牛逼的是支持客户端组态,然后动态生成网页,数据还能通过Socket实时监控(....
的头像 单片机精讲吴鉴鹰 发表于 05-14 14:35 231次 阅读
极简把三千行代码重构为15行

低代码开发平台会成为未来软件开发的主流模式吗

随着应用程序需求的不断增加,传统的开发模式已经没有办法满足市场的需求,现在开发领域都在寻求一种可以快....
发表于 05-14 11:38 46次 阅读
低代码开发平台会成为未来软件开发的主流模式吗

制造业ERP系统有哪些分析统计功能

ERP系统对于制造业来说起着至关重要的作用,它能够帮助制造企业进行数据统计和分析,优化内部资源结构,....
发表于 05-14 11:20 57次 阅读
制造业ERP系统有哪些分析统计功能

零代码开发平台为什么会受到企业管理者的欢迎

随着应用程序开发进程的不断推进,越来越多的企业通过使用管理软件提高了内部管理的效率,尤其是零代码开发....
发表于 05-14 11:15 98次 阅读
零代码开发平台为什么会受到企业管理者的欢迎

ERP系统可以帮助企业解决哪些问题

ERP系统已经成为很多企业提高行业竞争力的重要工具, ERP系统可以帮助企业优化内部资源机构,降低企....
发表于 05-14 11:07 82次 阅读
ERP系统可以帮助企业解决哪些问题

如何把C++的源程序改写成C语言

第一种是将C++中的面向对象特征去掉,先全部理解源代码的逻辑,然后改写;第二种是在C中保留面向对象的....
的头像 单片机精讲吴鉴鹰 发表于 05-14 10:08 366次 阅读
如何把C++的源程序改写成C语言

基于三叉树链表的编译器中间结构的设计方案研究

基于树形结构的中间结构是现今大多数编译器中间结构的主流设计方案,比如GCC、LCC、TCC等均使用二....
的头像 牵手一起梦 发表于 05-14 09:13 372次 阅读
基于三叉树链表的编译器中间结构的设计方案研究

GBA游戏开发入门教程说明

DevKitAdv 主要包括两部分,一是GCC++编译器,二是 GBA库。 GCC++编译器功能和我....
发表于 05-14 08:00 50次 阅读
GBA游戏开发入门教程说明

超声波测距数码管显示的C语言程序免费下载

  本文档的主要内容详细介绍的是超声波测距数码管显示的C语言程序免费下载。
发表于 05-13 17:32 55次 阅读
超声波测距数码管显示的C语言程序免费下载

如何包装你的代码?优秀的工程师不会告诉你的秘密

你可以把你的代码想象为一款办公软件,没有用过的用户其实很难了解这款软件到底值不值得买。这时就需要靠包....
的头像 自动驾驶说 发表于 05-13 17:01 265次 阅读
如何包装你的代码?优秀的工程师不会告诉你的秘密

低代码平台如何加快软件开发的速度

低代码平台的出现改变了传统软件开发的模式,使软件开发的速度更加快,并且降低开发成本。很多人可能会想低....
发表于 05-13 16:12 37次 阅读
低代码平台如何加快软件开发的速度

单片机C语言程序设计实训100例包含Keil程序和仿真电路图的资料合集

本文档的主要内容详细介绍的是单片机C语言程序设计实训100例包含Keil程序和仿真电路图的资料合集包....
发表于 05-13 08:00 87次 阅读
单片机C语言程序设计实训100例包含Keil程序和仿真电路图的资料合集