今天做了一道腾讯的笔试题,对#define有了新的理解,题目是:
test.c文件中包括如下语句:
1
2
3
4
|
#define INT_PTR
int
*
typedef
int
* int_ptr;
INT_PTR a,b;
int_ptr c,d;
|
文件中定义的四个变量中,哪个变量类型不是指针类型?
答案有;a,b,c,d,和都是指针的选项。
答案是选b,因为#define是宏替换,编译器只是单纯的展开,
所以会变成int*a,b;所以b不是指针类型,所以选b.