关于C 中宏能否假如IF语句

[复制链接]
查看11 | 回复4 | 2011-6-17 12:06:32 | 显示全部楼层 |阅读模式
比如:宏定义是:
#defineBEGIN_TEST_SUITE        \\
        structTestCaseDefinationg_arrTestSuite[]={
#defineDECLARE_TEST_CASE(ClassName,Name,Clients,Times,Interval)        \\
        {RUNTIME_CLASS(ClassName),Name,Clients,Times,Interval},
#defineEND_TEST_SUITE                \\
        {NULL,NULL,0,0,0}};
应用的是:
BEGIN_TEST_SUITE
        DECLARE_TEST_CASE(MyCase1,\"演示用例一\",15,33,1000)       
        DECLARE_TEST_CASE(MyCase2,\"演示用例二\",38,200,0)
        DECLARE_TEST_CASE(WebTestCase,\"Web压力测试\",10,5,0)//我想把这句在适当的条件下才触发,如何实现?
END_TEST_SUITE
回复

使用道具 举报

千问 | 2011-6-17 12:06:32 | 显示全部楼层
我给出的那个宏定义的作用类似于一个配置包,我的目的是根据UI上用户不同的选择,来执行不同的配置,DECLARE_TEST_CASE(MyCase1,\"演示用例一\",15,33,1000)和DECLARE_TEST_CASE(MyCase2,\"演示用例二\",38,200,0)
是一组;DECLARE_TEST_CASE(WebTestCase,\"Web压力测试\",10,5,0)是另一组。
请问您有何解决方法?
回复

使用道具 举报

千问 | 2011-6-17 12:06:32 | 显示全部楼层
想你这样的要求是不行的。
这是在程序中定义不同的struct,然而你这样做叫编译器怎么分配内存,怎样正确访问好呢?

好在你用的C,使用虚基类可以实现类似的要求
回复

使用道具 举报

千问 | 2011-6-17 12:06:32 | 显示全部楼层
我给出的那个宏定义的作用类似于一个配置包,我的目的是根据UI上用户不同的选择,来执行不同的配置,DECLARE_TEST_CASE(MyCase1,\"演示用例一\",15,33,1000)和DECLARE_TEST_CASE(MyCase2,\"演示用例二\",38,200,0)
是一组;DECLARE_TEST_CASE(WebTestCase,\"Web压力测试\",10,5,0)是另一组。您说的意思是在编译阶段进行判断吧,编译好之后就不能变了吧。
还望指点一二。。
回复

使用道具 举报

千问 | 2011-6-17 12:06:32 | 显示全部楼层
抱歉,我刚刚在VC里试了试,没办法动态地定义宏,编译好之后好像不能改变了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行