我有以下定义:
#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循环与字符串宏?
无论如何在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)