#c #typedef
Вопрос:
Я знаю, что typedef позволяет вам присваивать псевдоним типу, но что происходит в основной функции?
const int LOTTERY_SIZE = 5;
typedef int LotteryNumbers[LOTTERY_SIZE];
Поскольку LotteryNumbers-это массив int, лотерея и пользователь также являются массивом int?
int main(){
LotteryNumbers lottery, user;
}
Комментарии:
1. Я также хотел спросить, будет ли у пользователя и лотереи размер LOTTERY_SIZE.
2.
typedef
используется для определения типа. Отсюда «тип def». Все, что относится к типу «Номера лотерей», на самом деле будет массивом int длиной 53. Может
LOTTERY_SIZE * sizeof(int)
быть, байты.4. Может
using
быть, синтаксис был бы понятнее:using LotteryNumbers = int[LOTTERY_SIZE];
Ответ №1:
Код объявляет оба lottery
и user
как переменные, тип которых является LotteryNumbers
, который был определен как другое имя для «массива int
длины 5″.
Это равносильно написанию
int main(){
int lottery[5];
int user[5];
}
Комментарии:
1. Это неочевидно для людей, незнакомых с C , хотя, поскольку
[5]
часть каким-то волшебным образом переходит с левой стороны объявления на правую сторону объявления, чего не произошло бы, если бы они использовали a#define
вместо atypedef
(или даже C-style typedef для типа указателя)