C 宏对定义中的令牌进行计数
我正在寻找一种方法来计算组成C 宏对定义中的令牌进行计数,c,macros,count,token,C,Macros,Count,Token,我正在寻找一种方法来计算组成#define的令牌的数量。 例如,考虑下面的代码行: #define DAYS_OF_WEEK MON TUE WED THU FRI SAT SUN class DaysOfWeek { public: static const int count = COUNT(DAYS_OF_WEEK); }; 这个例子非常简单,COUNT是为了让您了解这个问题而发明的。 目前,我不知道有哪个C宏返回7来代替COUNT() 感谢您的帮助所以您想询问如何计算字符
#define
的令牌的数量。
例如,考虑下面的代码行:
#define DAYS_OF_WEEK MON TUE WED THU FRI SAT SUN
class DaysOfWeek
{
public:
static const int count = COUNT(DAYS_OF_WEEK);
};
这个例子非常简单,COUNT是为了让您了解这个问题而发明的。
目前,我不知道有哪个C宏返回7来代替COUNT()
感谢您的帮助所以您想询问如何计算字符串中的字数?这不能用宏来完成。可以接近(使用不同的语法——如果用逗号分隔每个标记),但这会导致一些非常难看的预处理器代码。按照@devnull的建议,将定义转换为字符串并在运行时计算单词可能更好。c?C++?我如何在其他地方使用它<代码>#定义第7周的计数天数为什么不使用
枚举{周一、周二、周三、周四、周五、周六、周日、计数}代码>?@user694733不,太易读,太有意义了。