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 (definisi) berada di file utama. Langkah berikutnya dalam pemrograman modular adalah memindahkan definisi tersebut ke file sumber mereka sendiri (file .c).
Ini membuat struktur tiga bagian yang rapi: header mendeklarasikan fungsi, file sumber terpisah mendefinisikannya, dan main hanya menggunakannya. Berikut 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 cocok dengan deklarasinya. Jika keduanya tidak cocok, compiler akan mendeteksi error tersebut. 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: header untuk deklarasi, file sumber untuk implementasi, dan file utama 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 guard menggunakan simbolMATH_OPS_H.math_ops.c: File sumber yang berisi implementasi sebenarnya darimultiplydansubtract. File ini harus menyertakan header-nya sendiri untuk memastikan deklarasi sesuai dengan definisi.main.c: File utama yang menyertakan header dan menggunakan kedua fungsi untuk melakukan perhitungan.
Fungsi multiply harus mengembalikan hasil kali dua bilangan bulat, dan subtract harus mengembalikan bilangan bulat pertama dikurangi bilangan bulat kedua.
Kamu akan menerima dua input bilangan bulat: a dan b.
Di fungsi utama, cetak 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 dari multiply}
// Selisih: {hasil dari 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