标题:如何处理vc中宏定义不能支持...表不定参数呢?
取消只看楼主
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
已结贴  问题点数:10 回复次数:3 
如何处理vc中宏定义不能支持...表不定参数呢?
#define  DPRINTF(...) printf(fmt, ...)
比如以上实例,我想使用...作为不定参数,但是VC好像不能支持的??
搜索更多相关主题的帖子: 定义 参数 
2010-09-15 01:02
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
程序代码:
#include <stdarg.h> //包含va_list
#include <stdio.h> //包含vsprintf()
#include <string.h>

#define MyPrtLog CPrtLogFunc(__FILE__,__LINE__).out

class CPrtLogFunc

{

public:

    char * m_file;

    int m_line;

   

    CPrtLogFunc(char * file,int line)

    {

        m_file=file;

        m_line=line;

    } 

    void out(char * format,...)

    { 

        printf("In file %s line %d",m_file,m_line);
        va_list arg_ptr;

        va_start(arg_ptr, format);

        vprintf(format,arg_ptr);

        va_end(arg_ptr);

    }

};



void main()
{
    MyPrtLog("Error %s\n","错误");
}
我在网上看到了C++ 实现方式,不知道纯C模式下怎么实现呢?

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-09-15 02:02
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
http://dev.这里描述的方法好像又只能适合于c99支持的编译器

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-09-15 02:11
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
回复 4楼 东海一鱼
还以为本来就应该支持的语法!看来新标准也是有用的

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-09-16 00:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320454-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.108340 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved