【C语言进阶】宏定义里面使用#define会怎么样?
这个问题,学过C语言的你,了解过吗?
1 问题描述
**大家都知道在C语言中,使用 **#define 进行宏定义,那么如果宏定义里面又出现 #define 呢?
这是宏定义的嵌套写法吗?
这种写法有没有问题?
2 问题验证
为此,我们写一段测试代码验证下:
#include
#define TEST_MACRO_1 100
#define TEST_MACRO_2 #define xxx
int main(int argc, const char *argv[])
{
printf("test = %d\\\\\\\\n", TEST_MACRO_2);
return 0;
}
我们编译运行下看看:
**注意看,这里的宏定义压根就是 ** 语法错误 ,也就是说在C语言里面就不支持宏定义的定义体里面又 #define 这样的字眼。
3 总结
- **C语言中使用 **#define 定义一个宏定义;
- **但是宏定义的定义体里面,不能再次出现 **#define 这种关键字,否则将会报语法错误。
4 更多分享
[架构师李肯]
架构师李肯 ( 全网同名 ),一个专注于嵌入式IoT领域的架构师。有着近10年的嵌入式一线开发经验,深耕IoT领域多年,熟知IoT领域的业务发展,深度掌握IoT领域的相关技术栈,包括但不限于主流RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、主流IoT云平台的对接、嵌入式IoT系统的架构设计等等。拥有多项IoT领域的发明专利,热衷于技术分享,有多年撰写技术博客的经验积累,坚信【知识改变命运,技术改变世界】!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
180文章
7513浏览量
124186 -
函数
+关注
关注
3文章
3845浏览量
61225 -
宏定义
+关注
关注
0文章
48浏览量
8921 -
define
+关注
关注
0文章
13浏览量
3671
发布评论请先 登录
相关推荐
CubeMx生成的stm32f013vet6设备,对于SDIOCLK频率设置的宏定义与手册里面对不上是为什么?
stm32f1xx_ll_sdmmc.h文件里面的这两个宏定义是针对48MHz
这里的48MHz是怎么来的?
并且在进行初始化的时候会使用到这一个宏, 如果时钟是72MHz的话
发表于 03-08 08:29
C语言#define的应用
在 C/C++ 编程语言中,当程序被编译时,被发送到编译器,编译器将程序转换为机器语言,然后完成编译并执行该程序。预处理器也称为宏预处理器。
发表于 03-06 11:29
•92次阅读
define宏定义
define宏定义 以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶
C语言宏定义讲解
近日在某一技术群又水群时某一群友将这个称之为“常量”,事实上在C语言中#define 正确的叫法叫做“宏定义”属于预处理指令中的一种,在C语言中应用极其广泛。
发表于 10-01 13:28
•327次阅读
基于Rust语言Hash特征的基础用法和进阶用法
,包括Hash trait、HashMap、HashSet等,本教程将详细介绍Rust语言Hash特征的基础用法和进阶用法。 基础用法 使用Hash trait 在Rust语言中,Hash trait
C语言中宏定义的使用技巧
#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。
发表于 09-05 10:12
•462次阅读
Eclipse无法解析宏定义如何解决?
我正在尝试编写一个简单的应用程序来将我的 ESP-01 连接到我的家庭 AP。为此,在代码中我定义了两个宏——我的 AP SSID 和密码如下:
代码:全选#define
发表于 06-08 06:54
评论