C'de alt program(function) ile ilgili yardım

kenyeagle
06-11-2008, 21:21   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Kas 2006

selam arkadaşlar. ben c ile ilgileniyorum hem okulda dersim var hemde amatör olarak ilgileniyorum. birşey kafama takıldı ve bulamadım. alt programdan ana programa tek bir değerden fazla bir değer gönderilirmi eğer gönderilirse bu nasıl olur? teşekkürler....

panda34
06-11-2008, 21:39   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,344 mesaj
Kayıt Tarihi:Kayıt: Ara 2007

#include <stdio.h>

int buBirFonksiyondur (int, int, int);

int main()
{
int a=3, b=5, c=8, toplam;

toplam = buBirFonksiyondur(a, b, c);

printf ("%d", toplam);

return 0;
}

int buBirFonksiyondur (int aX, int bX, int cX)
{
int toplayalim;

toplayalim = aX + bX + cX;

return toplayalim;
}

Son Düzenleme: panda34 ~ 06 Kasım 2008 21:42
kenyeagle
06-11-2008, 22:42   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Kas 2006

sanırsam bu program alt programdan ana programa tek bir değer gönderiyor. bnm sorum birden fazla değer göndermek genede teşekkürler..

panda34
06-11-2008, 23:45   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,344 mesaj
Kayıt Tarihi:Kayıt: Ara 2007
kenyeagle
sanırsam bu program alt programdan ana programa tek bir değer gönderiyor. bnm sorum birden fazla değer göndermek genede teşekkürler..
Alt programdan döndürmek istediğiniz değişkenleri static olarak tanımlayın .
Sonra bu değişkenlerin işaretçilerini
int* tipinde bir işaretçi dizisine tek tek atayın .
Sonra işaretçi dizisini ana programa döndürüp
işaretçiler üzerinden alt programdaki değişkenleri alabilirsiniz .
Böyle olur sanırım , fonksiyonun başlığıda int* fonksiyon() olmalı sanırım .

kenyeagle
07-11-2008, 01:58   |  #5  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Kas 2006
mengu88
Alt programdan döndürmek istediğiniz değişkenleri static olarak tanımlayın .
Sonra bu değişkenlerin işaretçilerini
int* tipinde bir işaretçi dizisine tek tek atayın .
Sonra işaretçi dizisini ana programa döndürüp
işaretçiler üzerinden alt programdaki değişkenleri alabilirsiniz .
Böyle olur sanırım , fonksiyonun başlığıda int* fonksiyon() olmalı sanırım .
teşekkürler çok yardımcı oldunuz gerçektenBeğendim

mdkmdk
16-03-2010, 12:08   |  #6  
Taze Üye
Teşekkür Sayısı: 0
19 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

statik tanımlama derken neyi kasdediyorsunuz. bunun içinde bir örnek kod yazarmısınız.

mdkmdk
16-03-2010, 12:09   |  #7  
Taze Üye
Teşekkür Sayısı: 0
19 mesaj
Kayıt Tarihi:Kayıt: Eki 2006

sttic tanımla derken? bununla ilgilide bir kod yazarmısınız

endazyar
22-03-2010, 15:14   |  #8  
Üye
Teşekkür Sayısı: 0
53 mesaj
Kayıt Tarihi:Kayıt: Oca 2010

bir fonksiyondan birden çok değer alabilmek için pointer ların kullanılması gerekmektedir. örnek bi program verecek olursak :

#include

/* fonk diye bi fonksiyon tanımladık ve bu fonksişyonun argümanları *xPtr ve *yPtr dir. yani x'in ve y'nin adresini fonksiyona göndedik.fonksiyon bu adreslere erişerek  buradki değerleri değiştirir.*/

void fonk(int *xPtr, int *yPtr)
{
        *xPtr = 5;      /* xPtr nin gösterdiği adresteki değeri 5 yap */
        *yPtr = 10;    /* yPtr nin gösterdiği adresteki değeri 10 yap */
}
int main()
{
        int x, y;

/* Fonksiyona adres vereceğimiz için burada x ve y yi adres opertörüyle çağırıyoruz */
        fonk( &x, &y);

        printf("x = %d,  y = %d\n", x, y);
        return 0;
}

işte bu şekilde bir fonksiyondan birden çok değer alınabilir.
daha fazla bilgi için buraya bakabilirsiniz: http://www1.gantep.edu.tr/~bingul/c/index.php?ders=11

Son Düzenleme: endazyar ~ 22 Mart 2010 15:18
eolos
22-03-2010, 19:36   |  #9  
Yıllanmış Üye
Teşekkür Sayısı: 0
2,036 mesaj
Kayıt Tarihi:Kayıt: May 2006

fonksiyondan dizinin adresini yollarsan dizinin hepsini yollamıs olursunki buda birden çok değeri işleyip adrese teslim ettiği gösterir