编程笔记

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 @   cogitoergosum  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-07-23 lua TRACEBACK错误打印
2019-07-23 sqlite 查看数据库表和字段
2016-07-23 linux 安装 zsh
点击右上角即可分享
微信分享提示