-1
我想通过一个字符串 给出的代码,打印我的宏的价值字符串转换为++宏使用C
#include<iostream>
#define abc 7
using namespace std;
int main()
{
string str = "abc";
cout<<str<<endl;
}
输出应该是7,如果我做的cout海峡
我想通过一个字符串 给出的代码,打印我的宏的价值字符串转换为++宏使用C
#include<iostream>
#define abc 7
using namespace std;
int main()
{
string str = "abc";
cout<<str<<endl;
}
输出应该是7,如果我做的cout海峡
你不能。在实际编译之前,宏扩展在早期的翻译阶段发生。这意味着您的需求无法在C++中实现。但std::map
(或std::unordered_map
)是一个关联的容器实现,可用于在运行时转换字符串
由于宏只是用它们的值替换,所以'cout << abc << endl;' –
问题是 - 我将从一个文件中读取str值,并且该文件中会有多个宏 –
不好的问题(很不清楚),缺少一些[MCVE](http://stackoverflow.com/help/mcve)。你可以考虑一些[X宏](https://en.wikipedia.org/wiki/X_Macro) –