大佬教程收集整理的这篇文章主要介绍了如何使用标志参数进行功能? (C ),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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);
这是可能的,如果是这样,怎么样?
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,请注明来意。