| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1270 人关注过本帖
标题:如何处理vc中宏定义不能支持...表不定参数呢?
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
已结贴  问题点数:10 回复次数:4 
如何处理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
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:7 
这个vc2003还不支持,2005没试过。2008可以了。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-09-15 12:17
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 4楼 东海一鱼
还以为本来就应该支持的语法!看来新标准也是有用的

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-09-16 00:11
快速回复:如何处理vc中宏定义不能支持...表不定参数呢?
数据加载中...
 
   



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

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