![]() |
1
6
这是一个相对复杂的代码,没有太多的理由在宏中使用它。成功
|
![]() |
2
44
GCC有一个称为 statement expressions 所以如果定义宏
你可以像这样使用
|
![]() |
3
4
很晚才答复。但同样如此。我同意内联函数更好,但宏确实提供了一些您无法从内联函数中获得的相当有趣的打印功能。我同意@qrdl的观点,如果您对语句进行了一点重组,那么您确实可以使用语句表达式。下面是如何使用宏-
|
![]() |
4
2
抱歉,这是一个编辑…
像这样:
要保留pass-by-reference c范例,您应该这样调用my_函数:
这样,以后,如果您决定使我的函数成为一个真正的函数,就不需要更改调用引用。 顺便说一句,qrdl的“语句表达式”也是一种很好的方法。 |
![]() |
5
-2
如果函数返回某个值,则无需声明变量,然后可以直接获取该值。例如:
这里,do_something返回一些整数。然后您可以很容易地使用它,如:
|
![]() |
Timo · 如果宏变量后跟构成有效标识符的字符,则不会展开宏变量 7 年前 |
![]() |
user3623498 · 在#if中更改变量时出现问题 7 年前 |
![]() |
einpoklum · 来自#cmakedefine替换的意外结果 7 年前 |
![]() |
Joseph Franciscus · C中预处理器方法的别名++ 7 年前 |
![]() |
stoper · 防止同一宏在多个转换单元中具有不同的定义 7 年前 |
![]() |
СеÑгей · MinGW中预处理器g++的奇怪行为 7 年前 |