Biasanya dalam C, kita harus memberi tahu komputer tipe data dalam deklarasi variabel. Misalnya dalam program berikut, saya ingin mencetak jumlah dua angka floating point X dan Y.
#include<stdio.h>
main()
{
float X=5.2;
float Y=5.1;
float Z;
Z=Y+X;
printf("%f",Z);
}
Saya harus memberi tahu kompiler jenis variabel X.
- Tidak bisakah kompiler menentukan jenisnya
Xsendiri?
Ya, bisa jika saya melakukan ini:
#define X 5.2
Sekarang saya dapat menulis program saya tanpa memberi tahu kompiler jenis Xsebagai:
#include<stdio.h>
#define X 5.2
main()
{
float Y=5.1;
float Z;
Z=Y+X;
printf("%f",Z);
}
Jadi kita melihat bahwa bahasa C memiliki beberapa fitur, yang dapat menentukan jenis data sendiri. Dalam kasus saya ditentukan bahwa itu Xadalah tipe float.
- Mengapa kita harus menyebutkan tipe data, ketika kita mendeklarasikan sesuatu di main ()? Mengapa kompiler tidak dapat menentukan tipe data dari variabelnya sendiri
main()seperti halnya di#define.
#define X 5.2, Xitu bukan variabel, tetapi sebuah konstanta, jadi ia secara harfiah diganti menjadi preprosesor dengan 5.2tempat yang Anda sebutkan X. Anda tidak dapat menetapkan kembali X.
autosebenarnya melakukan apa yang Anda inginkan). Di sisi lain, jika Anda pikir Anda tahu apa kode Anda lakukan, dan Anda benar-benar mengetik sesuatu yang lain, mengetik statis seperti ini akan menangkap kesalahan sebelumnya, sebelum menjadi masalah besar. Setiap bahasa menemukan keseimbangan: pengetikan statis, pengetikan tipe, pengetikan dinamis. Untuk beberapa tugas, pengetikan ekstra sebenarnya sepadan. Bagi yang lain, ini sia-sia.
5.2adalahdouble, jadi program pertama membulatkan literal ganda menjadifloatpresisi, kemudian menambahkannya sebagai float, sedangkan putaran kedua representasi ganda 5,1 kembali kedoubledan menambahkannya kedoublenilai 5,2 menggunakandoubletambahan, kemudian putaran hasil perhitungan perhitungan kefloatpresisi . Karena pembulatan terjadi di tempat yang berbeda, hasilnya dapat berubah. Ini hanya satu contoh untuk jenis variabel yang mempengaruhi perilaku program yang identik.