#是直接转字符串输出,例如:
#define FOOBAR1(s) #s
cout << FOOBAR1(INT_MAX) << endl;
// prints : INT_MAX
1
2
3
##是将内容作为代码语句编译,例如:
#define FOOBAR2(a, b) int(##a+##b)
cout << FOOBAR2(1, 2);
// prints : 3
1
2
3
最后完整测试代码如下:
#include <iostream>
using namespace std;
#define FOOBAR1(s) #s
#define FOOBAR2(a, b) int(##a+##b)
int main()
{
cout << FOOBAR1(INT_MAX) << endl;
// prints : INT_MAX
cout << FOOBAR2(1, 2);
// prints : 3
}