博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2021年 ARM嵌入式实战 第6章宏定义展开的#和##说明介绍
阅读量:4144 次
发布时间:2019-05-25

本文共 721 字,大约阅读时间需要 2 分钟。

#和##在平时开发的情况下用不到,它大多数在驱动和内核开发用的比较多。那它如何 使用呢?举个例子说明一下:

# 表示字符串化

## 表示连接符号

 

#define N(x)  #x 相当于“x” 

#define N(x)  name##x 相当于 namex

1.实战编写一个字符串化例子

#include <stdio.h>

#define N(x)   #x
int main(int argc,char* argv[]){
       printf(N(abc\n));
       return 0;
}

编译并输出结果

strom@strom-PC:~/Downloads/linux_system/Learn/e/1$ gcc -o build5 welcome8.c  

strom@strom-PC:~/Downloads/linux_system/Learn/e/1$ ./build5
abc

 

2.实战编写一个链接符号例子

#include <stdio.h>

#define CH(x)   ch##x
int main(int argc,char* argv[]){
       char ch1 ='a';  
       char ch2 ='b';
       printf("output for char is:%c\n",CH(1));
       return 0;
}

查看输出结果

strom@strom-PC:~/Downloads/linux_system/Learn/e/1$ gcc -o build6 welcome9.c  

strom@strom-PC:~/Downloads/linux_system/Learn/e/1$ ./build6
output for char is:a

转载地址:http://xduti.baihongyu.com/

你可能感兴趣的文章
DeepLearning tutorial(6)易用的深度学习框架Keras简介
查看>>
DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
查看>>
流形学习-高维数据的降维与可视化
查看>>
Python-OpenCV人脸检测(代码)
查看>>
python+opencv之视频人脸识别
查看>>
人脸识别(OpenCV+Python)
查看>>
6个强大的AngularJS扩展应用
查看>>
网站用户登录系统设计——jsGen实现版
查看>>
第三方SDK:讯飞语音听写
查看>>
第三方SDK:JPush SDK Eclipse
查看>>
第三方开源库:imageLoader的使用
查看>>
自定义控件:飞入飞出的效果
查看>>
自定义控件:动态获取控件的高
查看>>
第三方开源库:nineoldandroid:ValueAnimator 动态设置textview的高
查看>>
第三方SDK:百度地图SDK的使用
查看>>
Android studio_迁移Eclipse项目到Android studio
查看>>
JavaScript setTimeout() clearTimeout() 方法
查看>>
CSS border 属性及用border画各种图形
查看>>
转载知乎-前端汇总资源
查看>>
JavaScript substr() 方法
查看>>