Forum: Diğer Konular RSS
Bu değerin D deki karşılığı Nedir
Avatar
huseyin #1
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Bu değerin D deki karşılığı Nedir
Birşey soabilir miyim bu c de tanımlanmıs bunun d deki karşılığını nasıl yazabilirim
typedef int (*picolCmdFunc)(picolInterp *i, int argc, char **argv, void *privdata);
Huseyin
erdem (Moderatör) #2
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
huseyin325325:
typedef int (*picolCmdFunc)(picolInterp *i, int argc, char **argv, void *privdata);

typedef int function (picolInterp *i, int argc, char **argv, void *privdata) picolCmdFunc;

Ali bey cevap yazmadan şöyle bir sallayayım  :-)
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #1
O, int döndüren ve bir sürü parametre alan işlev türünün takma ismi. Aynısı D'de aşağıda "D'deki karşılığı" yazan yerde:

alias int picolInterp;
 
// D'deki karşılığı
alias int function(picolInterp *i, int argc, char **argv, void *privdata) picolCmdFunc;
 
// Ona uyan bir işlev
int foo(picolInterp *i, int argc, char **argv, void *privdata)
{
    return 42;
}
 
// Ona uyan başka bir işlev
int bar(picolInterp *i, int argc, char **argv, void *privdata)
{
    return 43;
}
 
void main()
{
    int i;
    int argc;
    char *argv;
    void *privdata;
 
    // Önce foo'yu gösteriyor
    picolCmdFunc işlev = &foo;
    işlev(&i, argc, &argv, privdata);
 
    // Sonra bar'ı
    işlev = &bar;
    işlev(&i, argc, &argv, privdata);
}

Ama tabii D'de char** gibi türler hemen hemen hiç geçmez.

Ali
Avatar
huseyin #4
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Erdem inan aynı tekniği bende uyguladım :)

Ali Hocam char** gibi değerlerin geçmeme sebebi nedir ??
Huseyin
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
"Geçmez"i "rastlanmaz, gerekmez" anlamında kullandım. char* yerine string, char** yerine de 'string ref' düşünülebilir.

Ali
Avatar
huseyin #6
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
hmm anladım c de string işlemleri zayıf biliyorsunuz. Anlayamadığım  pointer kullanımı neden bu kadar fazla alternatifler niçin üretilmemekte
Huseyin
erdem (Moderatör) #7
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
C ilintileri yazmana sevindim :)

Ali bey bu mesajlarda nasıl C ilintileri yazılacağını ve bazı C işlevlerinin nasıl D'ye çevrileceğini anlatmıştı.

http://ddili.org/forum/thread/517
http://ddili.org/forum/thread/539
http://ddili.org/forum/thread/537
Avatar
huseyin #8
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Teşekkür ederim erdem bunlar gerçekten işime yararlar . Forumda böyle şeyler aradım fakat bulamadım internette de yoktu demek ki yeterince iyi aramamışım
Huseyin
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 02:47:38 (UTC -08:00)