问题
单项选择题
编译并执行下面一段C语言后,其结果为()。
# define XXX (a,b) a##b
int test_func1 (int i)
return i*10;
int test_func2 (int i)
return i*100;
int main(int argc, char **argv)
printf("%d.\n", XXX (test_func, 1)(100));
A. 编译出错
B.100
C.1000
D.10000
答案
参考答案:C
解析:
本题考查C语言的基础知识。
“#define XXX(a,b)a##b”宏定义的含义是字符串连接。在本题中,main()中XXX(test_func,1)(100)在编译时会被替换成func1(100),编译时不会出错,调用该函数之后,其返回值为100*10=1000。