高端技巧:如何使用#define定义变量
来源:互联网 发布:昏君培养系统知风 编辑:程序博客网 时间:2024/04/30 23:47
Introduction
想在源文件中定义一个跟行号有关的变量,每次都手动输入实在是太慢了,本文介绍如何使用宏定义来定义与行号有关的变量。
例如:我们想在源代码的第10行定义A_10这样的一个整形变量。
用宏定义来完成使命
在宏定义中,标准C/C++中给出了两个特殊的操作符:#和##。#是用于给红参数添加双引号;##用于链接两个宏参数,既然可以连接两个宏参数,那我们就可以链接一个首字母和行号作为一个整体了!
于是,我们就这样写:
#define MM(A) A##__LINE__int main(){int MM(C);}
编译后发现,我们定义的竟然是C__LINE__这个变量,并不是我们想要的!为什么呢?
因为编译器在预处理的时候并没有把__LINE__展开,而是把它看成了一个整体!怎么办?
我们可以通过再定义另一个宏来先展开行号,然后在作为参数调用MM这个宏。
#define AA(B,C) B##C#define BB(B,C) AA(B,C)#define DD(A) BB(A,__LINE__)int main(){int DD(V);}
OK了,我们成功定义了与行号有关的变量了!
6 3
- 高端技巧:如何使用#define定义变量
- 使用define宏定义的小技巧
- 使用宏定义DEFINE
- C++中如何更好使用宏定义#define
- C++中如何更好使用宏定义#define
- define的使用技巧
- define的使用技巧
- 宏定义define的使用
- #define宏定义的使用
- 宏定义#define的使用
- 不使用中间变量交换两个变量(高端版本)
- define宏定义细节及uCOS中宏定义技巧
- Ext中如何定义一个类(define)
- 如何删除使用export定义过的变量?
- Excel中如何定义一个变量在表达式中使用
- 如何在AMDP 中定义和使用变量
- sql 定义变量,使用变量
- define进行宏定义,#,#@,##的使用
- 郑大第九届校赛正式赛(1819: 加加加!(油))
- registerNib: 与 registerClass: 的区别
- 哪些JavaScript IDE最好用?
- linux shell mysql 数据库主从同步状态检查告警
- OpenCV -- VideoCapture
- 高端技巧:如何使用#define定义变量
- Android-Androidstudio集成git开发环境
- Struts2学习——(九)Struts2标签III
- saltstack一些简单总结--关于salt-key命令的一些(3)
- python 学习笔记二之sklearn 库
- Jquery easyui从零单排之datagrid排序
- IOS_多线程编程3 - NSOperationQueue
- Python 程序员经常犯的 10 个错误
- FilenameFilter介绍