gpt4 book ai didi

c - 如何在 C 函数中将宏作为参数传递?

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

我想在 C 函数中将宏作为参数传递,但我不知道是否可行。我想看看这个操作,例如:

我有这些宏:

#define PRODUCT(A, B) ((A) * (B)) 
#define SUM(A, B) ((A) + (B))

然后我有了这个带有以下签名的函数:

int just_a_function(int x, MACRO_AS_PARAMATER_HERE);

然后我想这样调用这个函数:

just_a_function(10, SUM);

这可能吗?

谢谢

最佳答案

不能作为函数参数传递。

但如果函数是一个宏,这是可能的。

#include <stdio.h>

#define PRODUCT(A, B) ((A) * (B))
#define SUM(A, B) ((A) + (B))
#define JUST_A_FUNCTION(A, B, MACRO) MACRO(A, B)

int main() {
int value;

value = JUST_A_FUNCTION(10, 10, SUM);
printf("%d\n", value);

value = JUST_A_FUNCTION(10, 10, PRODUCT);
printf("%d\n", value);

return 0;
}

关于c - 如何在 C 函数中将宏作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21653041/

25 4 0
文章推荐: android - CompoundButton Checkbox 在哪里/如何测量可绘制复选框的宽度
文章推荐: c - n & ~(n - 1) 这个函数有什么作用?
文章推荐: C 编程 - strlen 的功能
文章推荐: javascript - 使用 CSS 变换缩放
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com