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....
C'de alt program(function) ile ilgili yardım
#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;
}
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..
kenyeaglesanı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 .
mengu88Alt programdan döndürmek istediğiniz değişkenleri static olarak tanımlayın .teşekkürler çok yardımcı oldunuz gerçekten
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 .
statik tanımlama derken neyi kasdediyorsunuz. bunun içinde bir örnek kod yazarmısınız.
sttic tanımla derken? bununla ilgilide bir kod yazarmısınız
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