gpt4 book ai didi

c - 我如何在c中解释(断言)?

转载 作者:行者123 更新时间:2023-12-02 08:55:19 26 4
gpt4 key购买 nike

void (assert)(int e)
{
assert(e);
}

这里是如何工作的?

最佳答案

void (assert)(int e) 相当于 void assert(int)

为什么需要它?

考虑以下示例

#include<stdio.h>
void foo(int a)
{
printf("%d", a);
}
#define foo(a) {/*I do nothing*/}

int main()
{
foo(5); // won't call `foo`
}

如何确保当您调用 foo 时,它是被调用的函数,而不是在调用位置替换的宏定义?

解决方案是添加一个额外的括号,例如 (foo)(5)

同样,assert 已知是一个宏。这是我能想到的原因。

关于c - 我如何在c中解释(断言)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401473/

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