Genellikle C'de, bilgisayara değişken bildirimindeki veri türünü söylememiz gerekir. Örneğin, aşağıdaki programda, X ve Y olmak üzere iki kayan nokta sayısının toplamını yazdırmak istiyorum.
#include<stdio.h>
main()
{
float X=5.2;
float Y=5.1;
float Z;
Z=Y+X;
printf("%f",Z);
}
Derleyiciye X değişkeninin türünü söylemem gerekiyordu.
- Derleyici türünü belirleyemiyor mu?
X
tek başına belirleyemiyor mu?
Evet, bunu yapabilirsem yapabilir:
#define X 5.2
Şimdi derleyiciye türünü söylemeden programımı yazabilirim X
:
#include<stdio.h>
#define X 5.2
main()
{
float Y=5.1;
float Z;
Z=Y+X;
printf("%f",Z);
}
Bu yüzden C dilinin, veri türünü kendi başına belirleyebilen bir tür özelliğe sahip olduğunu görüyoruz. Benim durumumda X
şamandıra tipi olduğunu belirledi .
- Main () öğesinde bir şey bildirirken neden veri türünden bahsetmek zorundayız? Neden derleyici kendi üzerinde bir değişkenin veri türünü belirleyemiyor
main()
o olduğu gibi#define
.
#define X 5.2
, X
bir değişken değil, bir sabittir, yani tam olarak 5.2
bahsettiğiniz herhangi bir yerle önişlemci olarak değiştirilir X
. Yeniden atayamazsınız X
.
auto
gerçekten istediğinizi yapar). Öte yandan, kodunuzun ne yaptığını bildiğinizi düşünüyorsanız ve aslında başka bir şey yazdıysanız, bunun gibi statik yazım, büyük bir sorun haline gelmeden önce bir hata yakalar. Her dil bir dengeye sahiptir: statik yazma, tip çıkarımı, dinamik yazma. Bazı görevler için, fazladan yazma aslında buna değer. Diğerleri için bu bir israftır.
5.2
a,double
ilk program çift değişmezleri yuvarlar, böylecefloat
hassas ikinci tur, 5.1 arka çift temsil ederken, daha sonra, yüzen olarak eklerdouble
ve eklerdouble
kullanılarak değeri 5.2double
ek, daha sonra bu hesaplama yuvarlarfloat
hassas . Yuvarlama farklı yerlerde gerçekleştiği için sonuç farklı olabilir. Bu, aksi takdirde özdeş bir programın davranışını etkileyen değişken türleri için sadece bir örnektir.