gpt4 book ai didi

gcc - 如何在为 gcc 和 vc++ 编写通用代码时克服 vc++ 警告 C4003

转载 作者:行者123 更新时间:2023-12-04 19:59:36 27 4
gpt4 key购买 nike

我有一个在 gcc 和 vc++ 中编译的代码。
该代码有一个在两种情况下调用的通用宏。

  • 当我们向它传递一些参数时。
  • 当我们不想向它传递任何参数时。

  • 这种代码的一个例子是:
    #define B(X) A1##X

    int main() {
    int B(123), B();

    return 0;
    }

    编译预处理步骤的预期输出为:
    int main() {
    int A1123, A1;

    return 0;
    }

    gcc 和 vc++ 的输出都符合预期,但 vc++ 会发出警告:
    warning C4003: not enough actual parameters for macro 'B'

    如何删除此警告并获得预期的输出?

    谢谢。

    最佳答案

    这可能取决于您的 VC++ 版本等

    #define B(...)  A1##__VA_ARGS__

    我不知道 vc++ 是否会喜欢一个空的 va args 但它值得一试——让我知道这是否有效:)

    关于gcc - 如何在为 gcc 和 vc++ 编写通用代码时克服 vc++ 警告 C4003,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370888/

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