前两天看到另外这么一道面试题:C语言中的#和##是用来干什么的?
通过查资料今天给大家说一下:
首先,我们平常在C语言中写的‘#’就是将其后面的宏参数变成一个字符串,而‘##’是将两个宏参数粘合在一起。具体使用看下面:
#include <iostream>
#include <stdio.h>
using namespace std;
#define Fin(s) #s
#define Con(a,b) int(a##e##b)
int main()
{
printf(Fin(vck)); // 输出字符串"vck"
printf("%d\n", Con(2,3)); // 2e3 输出:2000
return 0;
}
第一个printf打印的是vck,就是因为#将其后面的宏参数替换成了一个字符串。所以打印的是vck;
第二个printf打印的是2000,就是因为##将两个宏参数给粘合在了一起。所以打印的是2000。
以上就是#和##的表示的意思。望大家可以留意一下。(虽然不是很重要,多知道一些终究是好的!)