Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Preprocessor & Makro C: Menguasai #include, #define, dan Kompilasi Bersyarat

Preprocessor & Makro C

Jelajahi kekuatan preprocessor C: pelajari cara menyertakan header, mendefinisikan konstanta dan fungsi, dan mengontrol alur kompilasi dengan direktif bersyarat.

Preprocessor & Makro C: Menguasai #include, #define, dan Kompilasi Bersyarat

Preprocessor C berjalan sebelum kompiler, mengubah kode sumber Anda dengan memperluas makro, menyertakan file header, dan mengevaluasi pernyataan bersyarat. Ini adalah alat penting untuk menulis kode yang fleksibel dan dapat digunakan kembali.

Semua direktif preprocessor dimulai dengan simbol #. Contoh:

#define PI 3.14

Menyertakan File Header: #include

Direktif #include memasukkan isi file header secara langsung ke dalam file sumber Anda. Penggunaan umum:

#include <stdio.h>

Tanpa #include <stdio.h>, fungsi seperti printf() dan scanf() akan tidak terdefinisi. Anda juga dapat membuat header kustom:

#include "my_header.h"

Header kustom berguna untuk mengelompokkan deklarasi fungsi dan konstanta terkait.

Mendefinisikan Konstanta dan Ekspresi: #define

Sebuah makro mengganti token atau ekspresi dengan nilai sebelum kompilasi. Contoh:

#define c 299792458 /* kecepatan cahaya */

Menggunakan c di mana saja dalam program Anda akan diperluas menjadi 299792458.

Contoh 1: Mendefinisikan PI

#include <stdio.h> #define PI 3.1415 int main() { float radius, area; printf("Masukkan jari-jari: "); scanf("%f", &radius); area = PI * radius * radius; printf("Area=%.2f", area); return 0; }

Macro Seperti Fungsi

Makro dapat menerima argumen, berfungsi seperti fungsi inline:

#define circleArea(r) (3.1415 * (r) * (r))

Untuk circleArea(5), preprocessor akan memperluasnya menjadi (3.1415 * 5 * 5).

Contoh 2: Menggunakan Macro Seperti Fungsi

#include <stdio.h> #define PI 3.1415 #define circleArea(r) (PI * (r) * (r)) int main() { float radius, area; printf("Masukkan jari-jari: "); scanf("%f", &radius); area = circleArea(radius); printf("Area = %.2f", area); return 0; }

Kompilasi Bersyarat

Direktif bersyarat memungkinkan Anda untuk menyertakan atau mengecualikan blok kode pada waktu kompilasi, mirip dengan pernyataan if tetapi dievaluasi sebelum eksekusi.

Kasus Penggunaan Umum

Direktif Utama

#ifdef MACRO /* kode ketika MACRO didefinisikan */ #endif
#if EXPRESSION /* kode ketika EXPRESSION non-nol */ #else /* kode ketika EXPRESSION nol */ #endif
#if EXPRESSION /* kode */ #elif ANOTHER_EXPRESSION /* kode alternatif */ #else /* kode fallback */ #endif
#if defined BUFFER_SIZE && BUFFER_SIZE >= 2048 /* buffer cukup besar */ #endif

Macro Tertentu

MacroNilai
__DATE__String tanggal kompilasi saat ini
__FILE__String nama file saat ini
__LINE__Nomor baris tempat macro muncul
__STDC__Non-nol jika kompiler mengikuti standar ANSI C
__TIME__String waktu kompilasi saat ini

Contoh 3: Menampilkan Waktu Kompilasi

#include <stdio.h> int main() { printf("Waktu saat ini: %s", __TIME__); return 0; }

Contoh output:

Waktu saat ini: 19:54:39

Bacaan Direkomendasikan

Bahasa C

  1. Ringkasan Komprehensif Resistor, Induktor, dan Kapasitor dalam Rangkaian AC
  2. Memahami Kata Kunci dan Pengidentifikasi C#: Aturan, Daftar, dan Praktik Terbaik
  3. Kelas dan Objek C#: Fondasi untuk OOP yang Kuat
  4. Menguasai Kelas dan Metode Abstrak C#: Panduan Praktis
  5. Memahami Kelas dan Metode Parsial C#
  6. Menguasai Kelas dan Metode Tersegel di C#—Kapan Menggunakannya, Contoh Jelas, dan Tingkatkan Keamanan serta Performa Kode
  7. Menguasai Direktif Preprosesor C#: Panduan Praktis
  8. Kata Kunci dan Pengidentifikasi C: Panduan Praktis
  9. Memahami Konstanta dan Literal C: Tipe, Penggunaan, dan Praktik Terbaik
  10. Menguasai Input dan Output dalam Pemrograman C