编程笔记

1、定义通用文件时,可以将文件名称命名: zglobal.h

2、 pop 对应 push, begin 对应 end,front 对应back,   new 对应 delete      alloc 对应 free   insert 对应 remove

3、RIL(Radio Interface Layer)  用于应用层与底层通讯中间件

 

 

4、C打印枚举

    

#define DOGS { C(JACK_RUSSELL), C(BULL_TERRIER), C(ITALIAN_GREYHOUND) }
#undef C
#define C(a) ENUM_##a
enum dog_enums DOGS;

#undef C
#define C(a) #a
char *dog_strings[] = DOGS;

char *dog_to_string(enum dog_enums dog)
{
       return dog_strings[dog];
}
前 4 行我们得到了枚举:

enum dog_enums { ENUM_JACK_RUSSELL, ENUM_BULL_TERRIER, ENUM_ITALIAN_GREYHOUND }

中间三行,我们得到了字符串数组:

char *dog_strings[] = {"JACK_RUSSELL", "BULL_TERRIER", "ITALIAN_GREYHOUND"}

最后 dog_to_string 函数利用枚举值(从 0 开始)和数组 index(也从 0 开始) 的对应关系,实现枚举到字符串的转换。

于是我们可以像这样使用:

int main(){
    enum dog_enums d = ENUM_JACK_RUSSELL;
    printf("enum %s\n",dog_to_string(d));//enum JACK_RUSSELL

    d = ENUM_ITALIAN_GREYHOUND;
    printf("enum %s\n",dog_to_string(d));//enum ITALIAN_GREYHOUND
}

 

参考链接: https://mp.weixin.qq.com/s/5VBi0AOoInnIw-9mZ9b3Hw

posted @ 2022-07-23 08:45  cogitoergosum  阅读(44)  评论(0编辑  收藏  举报