gpt4 book ai didi

c - 将函数定义为宏

转载 作者:行者123 更新时间:2023-12-05 09:00:36 25 4
gpt4 key购买 nike

我试图理解将函数定义为宏,但我有以下代码,但我不确定我是否理解:

#define MAX(i, limit) do \      
{ \
if (i < limit) \
{ \
i++; \
} \
} while(1)

void main(void)
{
MAX(0, 3);
}

据我了解,它试图将 MAX 定义为两个数字之间的间隔?但是无限循环有什么意义呢?

我试图将 MAX 的值存储在 main 函数内的一个变量中,但它给我一个错误,提示 expected an expression

最佳答案

我目前正在进行软件开发实习,并尝试学习嵌入式 C,因为它对我来说是一个新领域。这是一个练习,询问我以下代码将做什么。我很困惑,因为我从未见过这样写的函数

你很困惑,因为这是一个技巧问题。发布的代码毫无意义。 MAX 宏确实扩展为无限循环,因为它的第一个参数是文字值,i++ 扩展为 0++ 这是一种语法错误。

要吸取的教训是:宏令人困惑,容易出错,不应该用来代替函数。

关于c - 将函数定义为宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75398355/

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