#if和#ifdef使用问题

#define TARGET_LITTLE_ENDINA 1
#define TARGET_BIG_ENDINA   0
#ifdef TARGET_LITTLE_ENDINA
call little endina function
#else
call big endina function
#endif
上面的今天写的代码,发现我不管把TARGET_LITTLE_ENDINA和TARGET_BIG_ENDINA定义成0或者1,调用的都是little endina函数,一直找不到问题所在,看看代码也没有什么问题。经过分析和查找相关的文档,原来是自己没有理解#if和#ifdef之间的区别。
对于#if需要是一个表达式,如果表达式为1则调用#if下面的代码。
对于#ifdef需要的只是这个值有没有定义,并不关心这个值是什么。
表明之间的区别问题就变得非常的容易,只要把上述代码中的#ifdef改成#if就可以达到目的。
从这个问题发现自己在一些基本的C或C++的语法上面还是有很大的不足,到网上查找一些书籍,对这方面介绍的也不是特别多,相比而言,MSDN还是比较全面。平时比较痛恨MS的,不过平心而论,MS对于开发软件工具和文档做的还是相当不错,尤其是开发文档方面非常全面,自己在项目SDK的开发过程中也需要加强这方面的工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值