catch 发表于 2014-6-20 11:03:11

这样做有什么意义?

本帖最后由 catch 于 2014-6-20 14:38 编辑

#ifndef    uint32_t                                           ...................①

typedef    __int32_t   uint32_t ;                  ...................②


#define    uint32_t      __uint32_t ;               ...................③


#endif                                                               ...................④


请问一下②与③为什么要重复定义?


vvqboy 发表于 2014-6-20 13:02:15

3有点问题吧,按一般的写法,应该是
#define    uint32_t       __uint32_t ;               ...................③

因为你开始ifndef uint32_t      
没定义uint32_t 就执行下面的语句,包含在ifndef中的语句,就该定义这个uint32_t了

catch 发表于 2014-6-20 14:43:14

vvqboy 发表于 2014-6-20 13:02 static/image/common/back.gif
3有点问题吧,按一般的写法,应该是
#define    uint32_t       __uint32_t ;               .......... ...

谢谢指正~ 但是有一个问题, 如果 uint32_t 没有定义,那么 __int32_t 一定是定义过的,否则 ②没有意义的,执行过②以后,显然 __int32_t   和uint32_t定义的数据效果一样,相当于同一种数据类型,那么③是不是多余的呢?

vvqboy 发表于 2014-6-21 00:06:19

catch 发表于 2014-6-20 14:43 static/image/common/back.gif
谢谢指正~ 但是有一个问题, 如果 uint32_t 没有定义,那么 __int32_t 一定是定义过的,否则 ②没有意义的,执 ...

一般3存在的目的,就是防止头文件重复包含导致的重复定义。
通过ifndef 和 define,就可以避免头文件重复包含了

网络学习 发表于 2014-6-21 00:42:24

俺来学习一下
页: [1]
查看完整版本: 这样做有什么意义?