发信人: woailvzi (红拂夜奔|logic ), 信区: C
标 题: Re: 一个面试问题
发信站: 饮水思源 (2004年12月27日20:09:14 星期一), 转信
1.可以用其他类型来扩展宏定义的类型,typedef的不可以
#define INT int
unsigned INT i;//可以
typedef int INT ;
unsigned INT i;//不可以
2.连续变量定义时typedef可以保证变量被定义为同一类型,#define不行
#define INT_PTR int*
INT_PTR i,j;//i是int *,j是int.
typedef int* INT_PTR ;
INT_PTR i,j;//可以,i,j都被定义成int *型
【 在 cauger (cauger) 的大作中提到: 】
: 去面试,跟一个老外聊了2个小时,感觉还不错,突然间他说要问几个silly question,
果
: 然很简单的一些问题,什么 指向指针的指针有什么用阿,为什么要使用虚函数阿,没问
: ,我的回答他也满意。可是最后一个,唉,郁闷:
: 请问 #define INT int 和 typedef int INT 有什么优劣,我说我从不用前者,他问
我
: why?
: 瞎说了几句,他不满意,我只好说不知道,然后还是没被放过,接着要我现场想,那个汗
: 啦!最后他给我个正确答案,其实我还是没搞懂
: 大家讨论讨论吧
--
我没有过去
从不为未来忧虑
自由的像空气
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 211.80.41.58]
标 题: Re: 一个面试问题
发信站: 饮水思源 (2004年12月27日20:09:14 星期一), 转信
1.可以用其他类型来扩展宏定义的类型,typedef的不可以
#define INT int
unsigned INT i;//可以
typedef int INT ;
unsigned INT i;//不可以
2.连续变量定义时typedef可以保证变量被定义为同一类型,#define不行
#define INT_PTR int*
INT_PTR i,j;//i是int *,j是int.
typedef int* INT_PTR ;
INT_PTR i,j;//可以,i,j都被定义成int *型
【 在 cauger (cauger) 的大作中提到: 】
: 去面试,跟一个老外聊了2个小时,感觉还不错,突然间他说要问几个silly question,
果
: 然很简单的一些问题,什么 指向指针的指针有什么用阿,为什么要使用虚函数阿,没问
: ,我的回答他也满意。可是最后一个,唉,郁闷:
: 请问 #define INT int 和 typedef int INT 有什么优劣,我说我从不用前者,他问
我
: why?
: 瞎说了几句,他不满意,我只好说不知道,然后还是没被放过,接着要我现场想,那个汗
: 啦!最后他给我个正确答案,其实我还是没搞懂
: 大家讨论讨论吧
--
我没有过去
从不为未来忧虑
自由的像空气
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 211.80.41.58]