sách gpt4 ai đã đi

c++ - Visual Studio 等同于 c++11(或更低版本)中的 gcc __attribute__((unused))?

In lại 作者:行者123 更新时间:2023-11-30 01:36:27 32 4
mua khóa gpt4 Nike

我正在尝试编写一个宏来在用户需要时使用抑制未使用的变量警告(例如,在您尚未实现整个类的派生类中)。我知道我可以删除变量名...但为了清楚起见,我更喜欢宏)。

到目前为止我有这个:

#ifdef WIN32
#define UNUSED(x) x
#else
#define x __attribute__((unused))
#kết thúc nếu

像这样使用:

void test_fn(int UNUSED(test_var)) {...}

我看到这篇文章:suppressing-is-never-used-and-is-never-assigned-to-warnings-in-c-sharp ,但它给了我一个我无法真正使用的结果(多行#pragmas)。

所以我的问题是,是否有与 __attribute__((unused)) 等效的 MSVS? - 即在同一条线上?

Để ý:这个问题没有回答如何做我的问题:how-do-i-best-silence-a-warning-about-unused-variables因为它没有涵盖如何以与 MSVS 和 gcc 一起工作的方式在函数原型(prototype)中使用它。

1 Câu trả lời

如果变量或函数参数可能未被使用,gcc's __attribute__((unused))旨在抑制有关它的任何警告。

现在,如果您想要便携的东西,有多种选择:

  1. 如果你不使用它,
    1. 这是一个函数参数,只是不要命名它。
    2. 否则,就不要创建它。
  2. 如果在某些情况下可能会用到它,只需强制转换为vô hiệu即可使用一次:

    (void)potentially_unused;

    是的,第二个选项不在原型(prototype)中,但必须考虑。

  3. 升级到 C++17 并使用 [[maybe_unused]] .

关于c++ - Visual Studio 等同于 c++11(或更低版本)中的 gcc __attribute__((unused))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52058457/

32 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com