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
X
sendiri?
Ya, bisa jika saya melakukan ini:
#define X 5.2
Sekarang saya dapat menulis program saya tanpa memberi tahu kompiler jenis X
sebagai:
#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 X
adalah 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
, X
itu bukan variabel, tetapi sebuah konstanta, jadi ia secara harfiah diganti menjadi preprosesor dengan 5.2
tempat yang Anda sebutkan X
. Anda tidak dapat menetapkan kembali X
.
auto
sebenarnya 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.2
adalahdouble
, jadi program pertama membulatkan literal ganda menjadifloat
presisi, kemudian menambahkannya sebagai float, sedangkan putaran kedua representasi ganda 5,1 kembali kedouble
dan menambahkannya kedouble
nilai 5,2 menggunakandouble
tambahan, kemudian putaran hasil perhitungan perhitungan kefloat
presisi . Karena pembulatan terjadi di tempat yang berbeda, hasilnya dapat berubah. Ini hanya satu contoh untuk jenis variabel yang mempengaruhi perilaku program yang identik.