file sumber
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 3 dari 61.
Sejauh ini, kita telah menempatkan deklarasi fungsi di file header, tetapi kode fungsi yang sebenarnya (definisinya) berada di file utama. Langkah berikutnya dalam pemrograman modular adalah memindahkan definisi tersebut ke file sumber (.c files) tersendiri.
Ini membuat struktur tiga bagian yang rapi: header mendeklarasikan fungsi, file sumber terpisah mendefinisikannya, dan main cukup menggunakannya. Begini tampilannya:
// math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H
int add(int a, int b);
#endif
// math_utils.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
// main.c
#include <stdio.h>
#include "math_utils.h"
int main() {
printf("%d\n", add(5, 3));
return 0;
}
Perhatikan bahwa math_utils.c menyertakan header-nya sendiri. Ini memastikan definisi fungsi sesuai dengan deklarasinya. Jika keduanya tidak cocok, compiler akan mendeteksi error. File utama hanya perlu menyertakan header untuk menggunakan fungsi tersebut. File utama tidak perlu mengetahui cara kerja add secara internal.
Pemisahan ini menyembunyikan detail implementasi dan memungkinkan kamu mengubah logika fungsi tanpa menyentuh file yang menggunakan fungsi tersebut.
Tantangan
MudahMari buat utilitas matematika sederhana dengan menyusun kodemu ke dalam struktur tiga file yang tepat: file header untuk deklarasi, file source untuk implementasi, dan file main yang menggunakannya.
Kamu akan membuat tiga file:
math_ops.h: File header yang berisi deklarasi fungsi untuk dua operasi:multiplydansubtract. Kedua fungsi menerima dua bilangan bulat dan mengembalikan bilangan bulat. Jangan lupa menyertakan include guard menggunakan simbolMATH_OPS_H.math_ops.c: File source yang berisi implementasi sebenarnya darimultiplydansubtract. File ini harus menyertakan headernya sendiri untuk memastikan deklarasi cocok dengan definisi.main.c: File main yang menyertakan header dan menggunakan kedua fungsi untuk melakukan perhitungan.
Fungsi multiply harus mengembalikan hasil perkalian dua bilangan bulat, sedangkan subtract harus mengembalikan bilangan bulat pertama dikurangi bilangan bulat kedua.
Kamu akan menerima dua input bilangan bulat: a dan b.
Di fungsi main, tampilkan hasil kedua operasi pada baris terpisah:
Product: {result of multiply}
Difference: {result of subtract}Contohnya, dengan input 8 dan 3, outputnya adalah:
Product: 24
Difference: 5Coba sendiri
#include <stdio.h>
#include "math_ops.h"
int main() {
int a, b;
scanf("%d", &a);
scanf("%d", &b);
// TODO: Panggil fungsi multiply dengan a dan b, lalu simpan hasilnya
// TODO: Panggil fungsi subtract dengan a dan b, lalu simpan hasilnya
// TODO: Cetak hasilnya dalam format:
// Produk: {hasil multiply}
// Selisih: {hasil subtract}
return 0;
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar Pemrograman Modular
file headerProteksi includefile sumberFungsi StatisRingkasan: Kalkulator Modular4Enkapsulasi
Konsep Opaque PointerMendefinisikan Opaque StructGetter dan SetterValidasi pada SetterUlasan: Kotak Rahasia2Object dan method
Struct sebagai objectPointer 'self'Konsistensi constPointer vs nilaiMethod pembantuRangkuman: Pengelola Point5Proyek: Akun Bank Sederhana
Penyiapan ProyekImplementasi Akun3Siklus Hidup object
Pola KonstruktorPola DestruktorInisialisasi StackSalinan MendalamRangkuman: Pembungkus string6Pewarisan melalui Komposisi
Penyematan StructAturan Anggota PertamaMengakses Anggota ParentUpcastingRekap: Hierarki Bentuk9Proyek: Penggambar Bentuk
Ringkasan ProyekImplementasi LingkaranImplementasi Persegi PanjangPenggunaan PolimorfismeWadah BentukLatihan sendiri: Compiler C online