【问题标题】:What typedef does here?typedef 在这里做什么?
【发布时间】:2021-09-16 01:32:27
【问题描述】:

我知道 typedef 允许你给一个类型一个别名,但是在 main 函数中发生了什么?

const int LOTTERY_SIZE = 5;
typedef int LotteryNumbers[LOTTERY_SIZE];

既然 LotteryNumbers 是一个 int 数组,那么 lottery 和 user 也是一个 int 数组吗?

int main(){
    LotteryNumbers lottery, user;
}

【问题讨论】:

  • 我还想问一下 user 和 lottery 是否会有 LOTTERY_SIZE 的大小。
  • typedef 用于定义类型。因此“类型定义”。任何“LotteryNumbers”类型的东西实际上都是一个 int 数组,长度为 5
  • 可能是LOTTERY_SIZE * sizeof(int) 字节。
  • 也许using 语法会更清晰:using LotteryNumbers = int[LOTTERY_SIZE];

标签: c++ typedef


【解决方案1】:

代码将lotteryuser 声明为类型为LotteryNumbers 的变量,它已被定义为“长度为5 的int 数组”的另一个名称。

相当于写

int main(){
    int lottery[5];
    int user[5];
}

【讨论】:

  • 这对于刚接触 C++ 的人来说并不明显,因为 [5] 部分以某种方式神奇地从声明的左侧跳到声明的右侧,这不会如果他们使用 #define 而不是 typedef(甚至是 C 风格的 typedef 指针类型),则不会发生
猜你喜欢
  • 2016-06-04
  • 1970-01-01
  • 2011-01-28
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多