找回密码
 注册
搜索
查看: 1825|回复: 19

[讨论] MTK 宏的问题

[复制链接]
发表于 2009-9-3 16:51:11 | 显示全部楼层 |阅读模式
看MTK的程序的时候,经常会碰到
#if defined(__MSDC_SD_MMC__)
#define MSDC_USE_USB_CLK
#endif
的类似的语句,看到这里时我就不知道__MSDC_SD_MMC__这个宏有没有被定义,我的做法就是使用搜索整个工程,但是并没有找到
#define __MSDC_SD_MMC__ 这种语句,
只有类似以下语句
sysGen1.pl (tools):#if (defined(__MSDC_MS__) || defined(__MSDC_SD_MMC__) || defined(__MSDC_MSPRO__))
。。。。
Nvram.ini (modis\nvram):/D "__MSDC_SD_MMC__"
Obex.ini (modis\obex):/D "__MSDC_SD_MMC__"
Option.mak (make):           COM_DEFS += __MSDC_SD_MMC__
Plutommi.ini (modis\plutommi):/D "__MSDC_SD_MMC__"
。。。。。
Wae.ini (modis\wae):/D "__MSDC_SD_MMC__"
Wapadp.ini (modis\wapadp):/D "__MSDC_SD_MMC__"
Zi.ini (modis\zi):/D "__MSDC_SD_MMC__"


Option.mak (make):           COM_DEFS += __MSDC_SD_MMC__里面有这个
是不是说明 __MSDC_SD_MMC__这个宏已经被定义了呢?
MTK宏太多了,这个弄不懂,我程序分支都不知道怎么走的,可能问题比较菜,高人指点一下
 楼主| 发表于 2009-9-3 17:06:35 | 显示全部楼层
是不是这个问题太简单了,[em10]
点评回复

使用道具 举报

发表于 2009-9-3 23:27:15 | 显示全部楼层
是,我是不是太直白了,[em10]
点评回复

使用道具 举报

发表于 2009-9-4 13:25:25 | 显示全部楼层
判断宏是否定义的简单方法是,在宏内写上一句错误语句,看看编译是否报错。如果报错,说明宏已经定义,否则宏没有定义。
点评回复

使用道具 举报

 楼主| 发表于 2009-9-4 15:13:27 | 显示全部楼层
这个方法是最好的,耗时最少,多谢楼上的指点!
点评回复

使用道具 举报

发表于 2009-9-4 16:47:28 | 显示全部楼层
Option.mak (make):           COM_DEFS += __MSDC_SD_MMC__里面有这个
是不是说明 __MSDC_SD_MMC__这个宏已经被定义了呢?

是的
点评回复

使用道具 举报

发表于 2009-9-4 21:23:30 | 显示全部楼层
以下是引用yangwind在2009-9-4 16:47:28的发言:
Option.mak (make):                                                                                 COM_DEFS += __MSDC_SD_MMC__里面有这个
是不是说明 __MSDC_SD_MMC__这个宏已经被定义了呢?

是的


那我在这句的下面再把它filter out![em01][em02]
点评回复

使用道具 举报

 楼主| 发表于 2009-9-5 09:45:14 | 显示全部楼层
filter out 是啥意思
点评回复

使用道具 举报

发表于 2009-9-5 13:55:25 | 显示全部楼层
[em01], [em01]
点评回复

使用道具 举报

发表于 2009-9-8 09:54:48 | 显示全部楼层
呵呵,学习了!
点评回复

使用道具 举报

发表于 2009-9-11 19:51:36 | 显示全部楼层
source insight打开,如果没有定义的话,它是黑色的,很容易分辨的啊
点评回复

使用道具 举报

发表于 2009-9-13 22:22:42 | 显示全部楼层
source insight 里好像不能自动辨别.mak文件吧
点评回复

使用道具 举报

发表于 2009-9-17 16:09:41 | 显示全部楼层
呵呵,可以在选项里面添加进去的!
不过感觉是不是黑色的很难判断吧,就像楼上的那位大虾说的,在.mak文件里的就不会显示的!
点评回复

使用道具 举报

发表于 2010-10-10 00:41:04 | 显示全部楼层
找custom_option文件,里面定义了生效的宏
点评回复

使用道具 举报

发表于 2010-10-11 11:20:14 | 显示全部楼层
MTK的宏,我觉得是MTK最大的毛病

看是否定义,太吃力了。严重影响阅读。

我习惯把所有宏都列在一个文件里

#define ENABLE_XXXXXX   1

宏嵌套,最好不超超过2层。

然后具体的代码里就写

#if (ENABLE_XXXXXX)
点评回复

使用道具 举报

发表于 2010-12-29 18:51:24 | 显示全部楼层
其实我也有这个问题呀!!!!
点评回复

使用道具 举报

发表于 2011-1-6 10:51:08 | 显示全部楼层
Option.mak (make):           COM_DEFS += __MSDC_SD_MMC__
表示已经定义了
点评回复

使用道具 举报

发表于 2011-1-6 13:44:59 | 显示全部楼层
以下是引用carlyle82在2009-9-17 16:09:41的发言:
呵呵,可以在选项里面添加进去的!
不过感觉是不是黑色的很难判断吧,就像楼上的那位大虾说的,在.mak文件里的就不会显示的!



如何加入?在C那里面加入*.mak?
点评回复

使用道具 举报

发表于 2011-1-6 13:45:34 | 显示全部楼层
以下是引用lcaliang在2010-10-10 0:41:04的发言:
找custom_option文件,里面定义了生效的宏



每个项目里面都是这么做的吗?
点评回复

使用道具 举报

发表于 2011-1-6 14:06:07 | 显示全部楼层
楼主加油,基础c还得加强下[em40][em40][em40]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-24 09:01 , Processed in 0.048105 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表