#define 在一行中处理多个宏
#define 'ing multiple macros in one line
在C++中,我们可以使用#define
来定义像#define PI 3.14
这样的宏,然后在整个代码中使用PI
来表示3.14
。
我的问题是:我们可以在一行中#define
多个宏吗?这样我就不需要写n行来定义n个宏了。
事实上,我想这样做是为了用替换名称(实际上是字母)来表示数组元素,正如下面的代码片段所示。
#include <cstdlib>
#include <math.h>
#include <time.h>
#define R dig[0]
#define E dig[1]
#define D dig[2]
#define B dig[3]
#define L dig[4]
#define U dig[5]
#define Y dig[6]
#define O dig[7]
#define W dig[8]
using namespace std;
int main() {
int dig[9]={1,2,3,4,5,6,7,8,9}; // R,E,D,B,L,U,Y,O,W
return 0;
}
有没有一种方法可以在一行中#define
所有这些宏,这样我就不必像上面的代码片段那样写多行了?谢谢
定义一个宏已经够糟糕的了。
在你的评论中,你想知道另一种方法。C++中有一个:
auto &R = dig[0], &E = dig[1], &D = dig[2] // etc ...
这不仅仅是一行,甚至是一句话。稍微详细一点,你可以做
auto &R = dig[0]; auto &E = dig[1]; auto &D = dig[2] // etc ...
现在一行有多个语句。(请参阅分号?)
AFAIK#define语句的末尾是行的末尾。所以不,你不能在一行中写几个单独的。正如有人提到的,在这里使用enum。
不,这在C或C++中都不可能。
您是否考虑过编写一个程序来在构建时生成重复代码?这是一种被低估的技巧。
相关文章:
- 警告处理为错误这里有什么问题
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 使用流处理接收到的数据
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 基于多个条件处理地图中的所有元素
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 如何用数字处理log(0)
- 从C++dll访问C#中的一行主要参数
- 如何通过预处理文件来访问O(1)中文件中的一行
- #define 在一行中处理多个宏
- 处理文件-替换一行
- 读取文件中的最后一行(c++中的文件处理)
- 如何处理csv文件输入流,我需要将文件的每一行中的数据划分为6个不同的变量(类型字符串和int)
- c++后缀计算器不能处理一行中的两个操作数
- 当一行只包含制表符时,处理制表符描绘的文本文件