Yazar |
|
reputation
Kayıt: 03.10.2007 |
|
arkadaslar ben C de bir kod yazmak istiyorum fakat kodun basında tip kontrolu yapmam gerekiyor , C# da olan GetType() fonksiyonuna benzer bir fonksiyon C'de var mıdır? bilgilendirirseniz sevinirim.
~~ms~~
|
|
Yazar |
|
clairvoyant
Antalya
Kayıt: 05.05.2006 |
|
Standard C 'de bildiğim kadarıyla böyle bir fonksiyon mevcut değil. Zaten standard C veri tiplerini tanıyabilmek pek kolay değil, çünkü veri saklanması çok sadedir. Elde edebileceğiniz şeyler değişkenin başlangıç adresi, uzunluğu ve içerdiği veridir. Değişken dinamik bir dizi ise o zaman uzunluğu da bilinmez. C# gibi üst seviyeli dillerde verilerin iç yapısı daha komplex olduğu için kendi tiplerini tanıtacak bir takım bilgiler içerebiliyorlar.
Kodu C++ 'da yazıyorsanız çalışma anında tip belirlemek için typeid nesnesini kullanabilirsiniz.
Let`s make this world a better place to live !
|
|
Yazar |
|
caglarmenguc
istanbul
Kayıt: 29.01.2006 |
|
clairvoyant ın da dediği gibi typeid operatorunu kullanabilirsiniz. size type_info türünden bir nesne dönecektir. Bu nesne içindeki karşılaştırma operatörlerini (==, !=) kullanabilir veya name metodu ile nesnenin tür ismini alabilirsiniz.
Buna alternatif olarak aklıma başka bir yöntem geldi. öncelikle sizin işinize yarar mı bilmiyorum ancak belki bu bahaneyle c++ a ufaktan bir başlangıç yaparsınız.
Kendi sınıfınıza otomatik tür dönüşümü operatörü de yazabilrsiniz. örnek olarak;
class myClass
{
char *str;
public:
myClass(const char* _str) {
int len = strlen(_str);
str = new char[len + 1];
memset(str, 0, len + 1);
memcpy(str, _str, len);
}
int ToInt() { return atoi(str); }
operator char* () { return str; }
operator int () { return ToInt(); }
};
int main()
{
myClass mc = "12345";
char* str = mc; // burda operator char* () çalışacaktır.
int val = mc; // burda da operator int ()
return 0;
};
Life is a game of cards...
A good player, even with a bad hand of cards, will play well and emerge a winner...
|
|
Yazar |
|
caglarmenguc
istanbul
Kayıt: 29.01.2006 |
|
geri tuşuyla yapmış olduğum bir hatadan dolayı konuyu cevabı 2. kez post etmiş bulundum, bu gereksiz mesaj için özür dilerim...
Life is a game of cards...
A good player, even with a bad hand of cards, will play well and emerge a winner...
|
|
Yazar |
|
kellad
istanbul
Kayıt: 21.01.2006 |
|
Ben bu tip belirleme olayına hala alışamadım. C#'ta bile. Arada bir lazım oluyor. Hep uğraşıp duruyorum.
Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
|
|
Yazar |
|
adaniak
Kayıt: 13.01.2007 |
|
C# alışması en kolay olan şey belki de sürükle bırak olayıdır aksini düşünen????
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | |