我如何自定义fprintf以启用禁用
How I can custom fprintf for enable disable
我想自定义fprintf
函数以启用/disable登录
我的项目使用makefile。
#define ENABLE_LOG
void log(fmt, ...){
#ifdef ENABLE_LOG
va_list vargs;
va_start(vargs, fmt);
fprintf(stderr, vargs);
va_end(vargs);
#endif
}
log("Test"); # build error
log("TEST %d", 1); # build error
如何创建可以使用ENABLE_LOG
log
函数您需要使用vfprintf()
。另外,我将制作一个空的宏,以避免打电话给空功能。
#define ENABLE_LOG
#ifdef ENABLE_LOG
void log(const char *fmt, ...) {
va_list vargs;
va_start(vargs, fmt);
vfprintf(stderr, fmt, vargs);
va_end(vargs);
}
#else
#define log(fmt, ...)
#endif
另外,请注意,已经有一个名为log
的C 功能。您可能会考虑一个不同的名称(尤其是如果您使用可怕的using namespace std;
- 即使您的代码看起来像纯c。(
相关文章:
- 编译时未启用intel oneApi CUDA支持
- OpenGL在启用深度测试时不会丢弃我的碎片
- Visual C++GC接口如何启用它以及要包含哪个库
- 如何在自定义类中启用'auto loops'?
- 根据某个函数是否存在启用模板
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 启用从"vector<const T>&"到"const vector&"的隐式转换<T>
- C++ win32 如何使密码字段可选并启用复制和粘贴?
- 如何使用 fprintf 将连续的 512 字节保存到文件中
- 在 Eclipse 上启用 C++17 以使用 'std::byte'
- 当 noexcept 函数尝试在 gcc 或 clang 中调用非 noexcept 函数时启用警告
- 如何为一段代码启用 -permissive
- 是否可以/希望创建不可复制的共享指针模拟(以启用weak_ptr跟踪/借用类型语义)?
- 在 GCC 中启用"differing levels of indirection"警告/错误
- 使用 Doxygen 记录枚举类值,而不启用EXTRACT_ALL
- '_HAS_CXX17'宏是否可用于自定义项目标头以启用C++17 语言集功能?
- 如何启用转换模板参数 T 以常量 T?
- 在使用 gSoap 链接多个 SOAP 服务时启用保持活动状态
- 如何启用标准::实验::atomic_shared_pointer
- 我如何自定义fprintf以启用禁用