C Academy · Pelajaran

Mentakrifkan Enum

Cipta nilai bernama yang mudah dibaca.

Pelajaran 1 daripada 413 langkah

Mentakrifkan Enum ialah pelajaran C Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C Academy merangkumi sejumlah 4 pelajaran.

Apakah Enum?

Enumerasi (enum) ialah jenis yang ditakrifkan pengguna untuk mengumpulkan sekumpulan pemalar integer yang dinamakan.

Daripada mengingati bahawa 0 bermaksud Isnin dan 1 bermaksud Selasa, anda memberikan nama yang mudah difahami kepada nombor tersebut. Ini menjadikan kod lebih jelas dan mengurangkan kemungkinan kesilapan.

Sintaks Asas

Anda mengisytiharkan enum dengan kata kunci enum, nama teg dan senarai nama dalam pendakap kerinting.

Setiap nama menjadi pemalar yang boleh digunakan di mana-mana integer dijangka.

enum Weekday { MON, TUE, WED, THU, FRI };

Nilai Lalai Bermula pada 0

Secara lalai, nama pertama ialah 0 dan setiap nama seterusnya bernilai satu lebih daripada nama sebelumnya.

Jadi dalam enum Weekday, MON ialah 0, TUE ialah 1, WED ialah 2 dan seterusnya.

#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
    printf("%d %d %d\n", MON, TUE, WED);
    return 0;
}

Mengisytiharkan Pemboleh Ubah Enum

Setelah jenis enum wujud, anda boleh mencipta pemboleh ubah daripada jenis tersebut.

Pemboleh ubah itu menyimpan salah satu nilai yang dinamakan. Pada asasnya, ia hanyalah int.

#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
    enum Weekday today = WED;
    printf("today = %d\n", today);
    return 0;
}

Sebab Enum Meningkatkan Kebolehbacaan

Bandingkan if (state == 2) dengan if (state == PAUSED).

Yang kedua menerangkan maksudnya sendiri. Enum membolehkan pengkompil menjejaki makna tersebut, sementara anda membaca nilai bernama yang jelas dan bukannya nombor misteri.

enum Status { RUNNING, PAUSED, STOPPED };

Menggunakan Enum dengan switch

Enum sesuai digandingkan dengan pernyataan switch. Setiap nilai bernama menjadi label kes yang jelas.

Ini ialah salah satu kegunaan enum yang paling lazim dalam dunia sebenar.

#include <stdio.h>
enum Status { RUNNING, PAUSED, STOPPED };
int main(void) {
    enum Status s = PAUSED;
    switch (s) {
        case RUNNING: printf("running\n"); break;
        case PAUSED:  printf("paused\n");  break;
        case STOPPED: printf("stopped\n"); break;
    }
    return 0;
}

Enum Hanyalah Integer

Pemalar enum boleh digunakan secara bersilih ganti dengan integer. Anda boleh melakukan pengiraan dan perbandingan dengannya.

Fleksibiliti ini berguna, tetapi juga bermakna C tidak akan menghalang anda daripada menyimpan nombor di luar julat.

#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
    enum Level next = LOW + 1;
    printf("%d\n", next);
    return 0;
}

Enum Tanpa Nama

Anda boleh menggugurkan nama teg jika hanya memerlukan pemalar dan bukannya jenis bernama.

Ini ialah cara pantas untuk mentakrifkan sekumpulan pemalar integer yang berkaitan.

#include <stdio.h>
enum { RED, GREEN, BLUE };
int main(void) {
    printf("%d %d %d\n", RED, GREEN, BLUE);
    return 0;
}

Konvensyen Penamaan

Mengikut konvensyen, nama pemalar enum ditulis dalam UPPER_CASE seperti makro.

Ini memberitahu pembaca bahawa nilai tersebut ialah pemalar tetap. Nama teg biasanya menggunakan CamelCase atau PascalCase.

enum TrafficLight { LIGHT_RED, LIGHT_YELLOW, LIGHT_GREEN };

Menggabungkan dengan typedef

Menulis enum Weekday di setiap tempat adalah panjang. typedef membolehkan anda menggunakan nama yang ringkas.

Selepas typedef, anda boleh mengisytiharkan pemboleh ubah sebagai Weekday today; tanpa kata kunci enum.

#include <stdio.h>
typedef enum { MON, TUE, WED } Weekday;
int main(void) {
    Weekday d = TUE;
    printf("%d\n", d);
    return 0;
}

Skop Pemalar Enum

Nama pemalar enum berkongsi ruang nama yang sama dengan pengecam biasa dalam skopnya.

Ini bermakna dua enum dalam skop yang sama tidak boleh menggunakan semula nama pemalar yang sama. Pilih nama yang berbeza untuk mengelakkan pertindihan.

enum A { OPEN, CLOSED };
enum B { LOCKED, UNLOCKED };

Semakan Pantas

Uji pemahaman anda tentang nilai lalai enum.

Imbas Kembali

Enum mentakrifkan pemalar integer yang dinamakan. Yang pertama ialah 0 dan setiap nama seterusnya lebih besar satu, melainkan anda menetapkan sebaliknya.

Enum menjadikan kod lebih mudah dibaca, sesuai digandingkan dengan switch dan boleh dipendekkan dengan typedef. Seterusnya kita akan meneroka nilai dan julat tersuai.

Percuma untuk bermula

Pelajari C dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
39
Pelajaran
144

Soalan Lazim

Adakah pelajaran “Mentakrifkan Enum” percuma?

Ya — teks penuh “Mentakrifkan Enum” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus C Academy, tingkat taraf kepada CoddyKit PRO. Kursus C Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mentakrifkan Enum”?

Cipta nilai bernama yang mudah dibaca. Anda berlatih C Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan C Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran C Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Mentakrifkan Enum” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran C Academy ini?

Ya. Setiap pelajaran C Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mentakrifkan Enum
  2. Nilai dan Julat Enum
  3. Pemboleh Ubah const
  4. Pemalar #define
← Kembali ke C Academy