当前位置: 首页 > news >正文

#define

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

#define A(x) T_##x     ##连接
#define B(x) #@x    #@单引号

#define C(x) #x     #双引号
我们假设:x=1,则有:
A(1)------〉T_1    
B(1)------〉'1'
C(1)------〉"1"


#define FOREACH_DAT_ID(GENERATE_DAT_ID) \
	GENERATE_DAT_ID(DAT_ID_START) \
	GENERATE_DAT_ID(DAT_ID_AUTO_DIFF) \
	GENERATE_DAT_ID(DAT_ID_CMR) \
	GENERATE_DAT_ID(DAT_ID_CMR2) \
	GENERATE_DAT_ID(DAT_ID_SCMR) \
	GENERATE_DAT_ID(DAT_ID_RTCM) \
	GENERATE_DAT_ID(DAT_ID_RTCMV3) \
	GENERATE_DAT_ID(DAT_ID_RTCMV32) \
	GENERATE_DAT_ID(DAT_ID_RTD) \
	GENERATE_DAT_ID(DAT_ID_RTCA) \
	GENERATE_DAT_ID(DAT_ID_NOVATELX)

#define GENERATE_ENUM(a)  a,

typedef enum
{
	FOREACH_DAT_ID(GENERATE_ENUM)
} DAT_ID;
typedef struct
{
	DAT_ID dat_id;
} CGI_TO_MNG_CMD_DATA__GET_GNSS_DATA;

int main()
{
	CGI_TO_MNG_CMD_DATA__GET_GNSS_DATA pstCgiGetGnssData;
	pstCgiGetGnssData.dat_id = DAT_ID_CMR;
	printf("id:%d\n", pstCgiGetGnssData.dat_id);
	system("pause");
}

其中#define GENERATE_ENUM(a)  a,   每当调用GENERATE_ENUM(a)表示a,     后面有个逗号。

这样在枚举类型中可以秀一下。 
 

转载于:https://my.oschina.net/u/2252538/blog/1574597

相关文章:

  • 无法加入域
  • 编译安装NTP时间服务报错
  • Visual Studio交叉编译器提供对ARM的支持
  • 设计模式-观察者模式
  • 检测您的CPU是否支持RemoteFX(SLAT二级地址转换)
  • 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值 一点点经验...
  • windows中禁止U盘写入
  • 使用LVS+NAT搭建集群实现负载均衡
  • AWS CLI使用s3
  • Java源码分析系列之ArrayList读后感
  • shell特殊符号,cut、sort、wc、uniq、tee、tr、split命令
  • jmeter源码编译
  • 详解CSS display:inline-block的应用
  • Keras查看model weights .h5 文件的内容
  • 在WinForm中增加查询对话框对DataGridView数据进行循环查找
  • [译]前端离线指南(上)
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • angular学习第一篇-----环境搭建
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Vultr 教程目录
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 分类模型——Logistics Regression
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 深入浏览器事件循环的本质
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 2017年360最后一道编程题
  • Mac 上flink的安装与启动
  • 积累各种好的链接
  • # SpringBoot 如何让指定的Bean先加载
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (C++17) std算法之执行策略 execution
  • (LeetCode 49)Anagrams
  • (poj1.2.1)1970(筛选法模拟)
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)fock函数详解
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .chm格式文件如何阅读
  • .gitignore
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET 使用配置文件
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .Net语言中的StringBuilder:入门到精通
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .sh 的运行
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [20181219]script使用小技巧.txt
  • [Android]竖直滑动选择器WheelView的实现
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [BZOJ3757] 苹果树