C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 如何使用带extern常量的开关?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一些code.cpp文件包含
extern const int v1;
extern const int v2;
extern const int v3;
extern const int v4;

int _tmain(int argc,_TCHAR* argv[])
{
    int aee = v1;
    switch (aeE)
    {
    case v1:
        break;
    case v2:
        break;
    case v3:
        break;
    case v4:
        break;
    }
        return
}

一个文件deFinition.cpp包含

const int v1 = 1;
const int v2 = 2;
const int v3 = 3;
const int v4 = 4;

当我编译我有错误C2051:case表达式不是常量
但是当我删除外部的一切都是好的.

有什么办法让它与外部工作吗?

解决方法

编号开关仅适用于完全定义的积分类型常数(包括明确转换为积分类型的枚举成员和类). here是指向MSDN的旧引用的链接,但是说什么仍然有效.

This link,我在另一个答案的评论中提供了解编译器可以对汇编代码执行哪些优化.如果这被延迟到链接步骤,这是不容易的.

因此,如果在你的情况下,你应该使用if.

大佬总结

以上是大佬教程为你收集整理的c – 如何使用带extern常量的开关?全部内容,希望文章能够帮你解决c – 如何使用带extern常量的开关?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。