前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >static const VS #define VS enum

static const VS #define VS enum

作者头像
ClearSeve
发布2022-02-11 08:37:49
7520
发布2022-02-11 08:37:49
举报
文章被收录于专栏:ClearSeve

问题

在 C 语言中,下面的用法哪个最好?

代码语言:javascript
复制
static const int var = 5;
代码语言:javascript
复制
#define var 5
代码语言:javascript
复制
enum { var = 5 };

回答

取决于你用来干什么。

  1. static const int var = 5
  2. #define var 5
  3. enum { var = 5 }
  • 如果需要传指针,那只能用 (1)
  • (1) 不能作为全局作用域下数组的维数定义,而 (2)(3) 可以
  • (1) 不能作为函数作用域下静态数组的维数定义,而 (2)(3) 可以
  • (1) 不能在 switch 语句下使用,而 (2)(3) 可以
  • (1) 不能用来初始化另一个静态常量,而 (2)(3) 可以
  • (2) 可以用预处理器判断是否已存在,而 (1)(3) 不可以

大多场景下,enum 是最佳选择。

如果是 C++ 语言,那么自始至终都应该使用 (1)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 回答
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档