gpt4 book ai didi

c - 功能类似于宏花括号或 do..while

转载 作者:太空狗 更新时间:2023-10-29 17:17:56 30 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Do-While and if-else statements in C/C++ macros

gcc (GCC) 4.7.2
c89

你好,

我有以下类似函数的宏,只是想知道跨多行使用时的首选用法是什么。最好使用花括号或 do..while(0) 循环。

通常我对所有事情都使用 do..while(0) 。但是我看到一些项目只使用花括号,我不确定哪个更好。

做..同时

#define DSO_ERROR(msg, res_handle_module, mem_pool, size)   do {        \
char *dso_error = apr_palloc((apr_pool_t*)mem_pool, size); \
apr_dso_error((apr_dso_handle_t*)res_handle_module, (char*)dso_error, (apr_size_t)size); \
LOG_ERR("%s dso error %s", (char*)msg, dso_error); \
goto dso_failure; \
} while(0);

花括号

#define DSO_ERROR(msg, res_handle_module, mem_pool, size) {             \
char *dso_error = apr_palloc((apr_pool_t*)mem_pool, size); \
apr_dso_error((apr_dso_handle_t*)res_handle_module, (char*)dso_error, (apr_size_t)size); \
LOG_ERR("%s dso error %s", (char*)msg, dso_error); \
goto dso_failure; \
}

唯一的区别是分号将被预设在 do..while 循环中,而不是花括号中。

非常感谢您的任何建议,

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com