gpt4 book ai didi

c - C 是否有 [[nodiscard]] 机制在忽略值时发出警告?

转载 作者:行者123 更新时间:2023-12-05 00:42:46 31 4
gpt4 key购买 nike

在 C++ 中,我们可以使用“[[nodiscard]]”来装饰我们的返回类型,如果结果未使用,则会触发编译器警告。

这对于强制执行错误代码特别有用

auto dont_forget_to_check = do_something_important();
assert(dont_forget_to_check);

C 是否存在类似的东西?

最佳答案

没有标准的方法可以做到这一点,但 gcc 确实支持 warn_unused_result 属性。

__attribute__ ((warn_unused_result))
int foo()
{
return 5;
}

int main()
{
foo();
return 0;
}

编译器输出:

[dbush@db-centos7 ~]$ gcc -g -Wall -Wextra -o x1 x1.c
x1.c: In function ‘main’:
x1.c:11:8: warning: ignoring return value of ‘foo’, declared with attribute warn_unused_result [-Wunused-result]
foo();
^

关于c - C 是否有 [[nodiscard]] 机制在忽略值时发出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72036073/

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