C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用标志参数进行功能? (C )大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何使用像 Windows的CreateWindow(… style | style,…)这样的标志来创建@L_696_1@函数,例如,@L_696_1@createnum函数
int CreateNum(flag flags) //???
{
    int num = 0;
    if(flags == GREATER_THAN_TEN)
        num = 11;
    if(flags == EVEN && ((num % 2) == 1)
        num++;
    else if(flags == ODD && ((num % 2) == 0)
        num++;
    return num;
}
//called like this
int number = CreateNum(GREATER_THAN_TEN | EVEN);

这是可能的,如果是这样,怎么样?

解决方法

您可以定义@L_696_1@指定“单位”值的枚举(请注意,封闭结构仅作为命名上下文来执行,以便您可以编写例如MyFlags :: EVEN):
struct MyFlags{
    enum Value{
        EVEN                           = 0x01,ODD                            = 0x02,ANOTHER_FLAG                   = 0x04,YET_ANOTHER_FLAG               = 0x08,SOMETHING_ELSE                 = 0x10,SOMETHING_COMPLETELY_DIFFERENT = 0x20
    };
};

然后使用它:

int CreateNum(MyFlags::Value flags){
    if (flags & MyFlags::EVEN){
        // do something...
    }
}

void main(){
    CreateNum((MyFlags::value)(MyFlags::EVEN | MyFlags::ODD));
}

或者只是这样:

int CreateNum(int flags){
    if (flags & MyFlags::EVEN){
        // do something...
    }
}

void main(){
    CreateNum(MyFlags::EVEN | MyFlags::ODD);
}

您也可以简单地声明整数常量,但是在我看来,枚举更清晰.

注意:我更新了这个帖子来虑一些意见,谢谢!

大佬总结

以上是大佬教程为你收集整理的如何使用标志参数进行功能? (C )全部内容,希望文章能够帮你解决如何使用标志参数进行功能? (C )所遇到的程序开发问题。

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

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