隐藏 GCC 警告“已设置但未使用”?

发布于 2024-12-14 13:36:23 字数 383 浏览 2 评论 0原文

我想做一个函数来获取结构体上的指针。 我这样做了:

void *getTokenList() {
    static t_token *list;

    return &list;
}

在编译时,我收到以下警告: 警告:变量“列表”已设置但未使用[-Wunused-but-set-variable]

是否可以为此函数禁用此警告(仅此一个),或者在这个变量上添加一个 GCC 属性来隐藏这个警告?

我已将 #pragma GCC 诊断忽略“-Wunused-but-set-variable” 放在我的文件顶部,但我只想在此函数中隐藏此变量的此警告。

谢谢, 让

I want to do a function to get a pointer on a struct.
I done this :

void *getTokenList() {
    static t_token *list;

    return &list;
}

At compilation, I have this warning :
warning: variable ‘list’ set but not used [-Wunused-but-set-variable]

Is it possible to disable this warning for this function (only this one), or put an GCC attribute on this variable to hide this warning?

I had put #pragma GCC diagnostic ignored "-Wunused-but-set-variable" in top of my file but I want to hide this warning ONLY for this variable in this function.

Thanks,
Jean

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

余生一个溪 2024-12-21 13:36:23

您可以使用它来关闭它:

(void)list;

或者,您可以使用 __attribute__((未使用))

You can use this to shut it off:

(void)list;

Alternatively and less portably you can use __attribute__((unused)).

千柳 2024-12-21 13:36:23

静态 t_token *__attribute__((未使用)) 列表;

static t_token *__attribute__((unused)) list;

独自唱情﹋歌 2024-12-21 13:36:23

此警告是 gcc 中的一个错误。如其他答案中所述,可以轻松禁用版本 4.6 中引入的警告,但应注意 当前版本gcc 不会产生警告。

This warning was a bug in gcc. The warning, introduced in version 4.6, can easy be disabled as explained in other answers, but it should be noted that current versions of gcc do not produce the warning.

热鲨 2024-12-21 13:36:23

即将推出的 C23 标准将提供属性作为考虑此类情况的标准化方式(与C++)。

虽然尚未标准化,但

[[maybe_unused]] static t_token *list;

该功能已从 gcc 10.1 开始提供,即使使用 C23 之前的代码,请参阅 这个例子在 godbolt 上。

更多资源:

The upcoming C23 standard will provide attributes as a standardized way to consider such cases (very similar to attributes in C++).

With this you can write

[[maybe_unused]] static t_token *list;

Although not yet standardized, the functionality is already available from gcc 10.1, even with pre C23 code, see this example on godbolt.

Further resources:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文