一个面试问题:Define&Typedef

发信人: 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]                                                                

原文地址:https://www.cnblogs.com/dayouluo/p/87037.html