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" },
};
本文发布于:2024-02-03 03:14:56,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170690129548291.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |