无论如何使用for循环与字符串宏?

jon*_*yeo 5 c++ macros

我有以下定义:

#define STRING_OBJECT_1 "bird"
#define STRING_OBJECT_2 "dog"
#define STRING_OBJECT_3 "cat"
#define STRING_OBJECT_4 "human"
#define STRING_OBJECT_5 "cow"
#define STRING_OBJECT_6 "snake"
#define STRING_OBJECT_7 "penguin"
#define STRING_OBJECT_8 "monkey"
Run Code Online (Sandbox Code Playgroud)

我想STRING_OBJECT只使用编号STRING_OBJECT_ + "(number string)",所以基本上不直接输入STRING_OBJECT_1.

无论如何在C++中使用for循环与字符串宏?

R S*_*ahu 5

无论如何在C++中使用for循环与字符串宏?

不,没有.

在编译源代码以创建目标代码之前处理宏.

for循环中的变量值在运行时设置.因此,他们无法使用宏.

最好的办法是用数组变量扩充代码,并在for循环中使用数组变量.

#define STRING_OBJECT_1 "bird"
...
#define STRING_OBJECT_8 "monkey"

std::string object_array[] = {STRING_OBJECT_1, ..., STRING_OBJECT_8};

for ( int i = 0; ... )
{
   do_something(object_array[i]);
}
Run Code Online (Sandbox Code Playgroud)