use*_*683 5 c++ c-preprocessor
看看这段代码:
#include <iostream>
using namespace std;
#define foo bar
#define string(a) #a
#define concat(a,b) string(a ## b)
#define concat2(a,b) concat(a,b)
int main()
{
cout << concat(foo, baz) << '\n' << concat2(foo, baz) << endl;
}
Run Code Online (Sandbox Code Playgroud)
该程序的输出是:
foobaz
barbaz
Run Code Online (Sandbox Code Playgroud)
为什么添加额外级别的间接会改变此代码的行为?
归档时间: |
|
查看次数: |
55 次 |
最近记录: |