gpt4 book ai didi

c - 何时使用#define 或常量 char/int?

转载 作者:太空狗 更新时间:2023-10-29 17:18:26 25 4
gpt4 key购买 nike

一般来说,定义一些特定参数(例如 (char *) UserIPaddr="192.168.0.5" , (int) MAX_BUF=1024)是否更好#define 还是 constant char */int?

我读到一些帖子说最好不要使用 #define 。但是,我在开源代码上看到 #define 的用法很常见 one example来自源代码:

#define IEEE80211_WLAN_HDR_LEN      24
a_uint8_t *iv = NULL;
a_uint16_t tmp;
a_uint16_t offset = IEEE80211_WLAN_HDR_LEN;

#define 可以避免在那里使用,但我想知道为什么在这种情况下更喜欢使用 #define。我应该如何决定何时使用 #define 或不使用?

最佳答案

在 C 中,const 声明不会产生常量表达式,因此如果您需要一个常量表达式,则使用 const 是不可能的,传统且更常用的方法是使用 # 定义

例如 const int 不能用于:

  • 一个案例标签或
  • 作为位域宽度或
  • 作为非 VLA 数组声明中的数组大小(C99 天之前)

关于c - 何时使用#define 或常量 char/int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17380564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com