今天做了一道腾讯的笔试题,对#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.