C++代码 模板写法

集合循环简写

for (bool callRestore : { false, true }) 
{

}

变参函数

#include<stdarg.h>
void test_va(int type, ...)
{
    va_list arg;
    va_start(arg, type);

    int iValue = 0;
    char* szValue = 0;
    if(type==1) iValue=va_arg(arg, int);
    if(type==2) szValue=va_arg(arg, char*);

    va_end(arg);
}
void test_va_format(const char* format, ...)
{
    va_list arg;
    va_start(arg, format);

    char buffer[256] = "";
    vsprintf(buffer, format, arg);

    va_end(arg);
}
void test_van_format(const char *format, ...)
{
    char buffer[256];
    va_list args;
    va_start (args, format);
    vsnprintf (buffer, 256, format, args);
    va_end (args);
    
    std::cout << buffer << std::endl;
}
test_va(1,22);
test_va(2,"22");
test_va_format("%s-%d","wo",1);
test_van_format("float:%3.1f",1.2);
/*
va_list对应char*,方面字符串格式化;
va_start通过后面参数值的地址确定变参起始地址给前面参数,变参及前面参数可以看着连续存放的内存块
va_end将参数置空
*/

错误码和错误短语

enum ReturnStatus
{
    STS_ERR_FAILED                = -999,
    STS_ERR_NOT_INITIALIZED       = -998,
    STS_ERR_NOT_ENOUGH_DATA       = -996,
    STS_ERR_NULL_PTR              = -995,
    STS_ERR_INIT                  = -899,
    STS_ERR_END_OF_STREAM         = -895,
    STS_ERR_ALLOC                 = -883,
    STS_ERR_UNSUPPORTED           = -879,
    STS_ERR_INVALID_PARAMS        = -876,
    STS_ERR_FILE_OPEN             = -875,
    STS_ERR_FORMAT                = -874,
    STS_OK                        =  0
};

typedef int Status;

struct CodeStringTable
{
    int         iCode;
    const char *pString;
};

static const CodeStringTable StringOfBaseStatus[] = {
    { STS_OK,                   "Success" },
    { STS_ERR_FAILED,           "General failure" },
    { STS_ERR_NOT_INITIALIZED,  "Object is not initialized" },
    { STS_ERR_NOT_ENOUGH_DATA,  "Not enough input data" },
    { STS_ERR_NULL_PTR,         "Unexpected NULL pointer" },
    { STS_ERR_INIT,             "Failed to initialize object" },
    { STS_ERR_END_OF_STREAM,    "End of stream" },
    { STS_ERR_ALLOC,            "Failed to allocate memory" },
    { STS_ERR_UNSUPPORTED,      "Unsupported parameters/mode" },
    { STS_ERR_INVALID_PARAMS,   "Invalid parameters" },
    { STS_ERR_FILE_OPEN,        "Failed to open file" },
    { STS_ERR_FORMAT,           "Invalid format" },
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值