CCS C'de alt program oluşturulup sonra bu alt programı çağırabiliyormuyuz?

Başlatan musti463, 29 Eylül 2013, 05:09:46

musti463

Merhaba,CCS C'de bir program yazıyorum,program 300-400 satır arası sürecek gibi görünüyor ve yaklaşık 200 if komutu bulunacak bu yüzden belli kısımları alt program haline getirmek istiyorum yoksa programın birbirine karışması muhtemel.

Yapacağım iş şu;belli bir değişkende saklı bilgi, alt programa gidecek ve alt programın ürettiği değer, Ana programda farklı bir değişkene değer olarak atanacak.

Bu alt program işini daha önce duymuştum,programımızı daha sade ve anlaşılır hale getiriyormuş kısmetse ilk defa kullanacağım sizlerin yardımıyla inşallah :)

Teşekkürler.
Mustafa Emir SADE

hasankara

ccs c de denemedim ama muhtemel kullanım şeklinden bahsedeyim. anladığım kadarıyla kütüphane oluşturup içerisine bazı fonksiyonlar yazıp bu fonksiyonu ana döngüde çağırmak istiyorsunuz.

kütüphanenize bir isim belirleyin. main() fonksiyonunun bulunduğu .c uzantılı dosyanın (main.c olabilir) bulunduğu klasör içine ktp.c ve ktp.h dosyaları oluşturun. daha sonra main.c dosyasının içerisine en üste #include "ktp.h" ön işlem komutunu yazın. aynı ön işlem komutunu ktp.c nin içerisine de en üste yazın.

sonra ktp.c dosyasının içine fonksiyonu yazın. kodlarıyla birlikte  tam çalışır halinde yazın. yazdığınız fonksiyonun adı "void fonksiyon(int a)" olsun. daha sonra bu fonksiyonun adını sonuna ; koyarak "void fonksiyon(int a);" şeklinde ktp.h içerisine yazın. böylece fonksiyonunuzu nerde kullanmak istiyorsanız, hangi .c dosyasında kullanmak istiyorsanız o dosyanın içerisinde, başına #include "ktp.h" yazıp kullanabilirsiniz. burda main.c de kullanabileceğin şekilde anlattım.

esensoy

Mesela;
int16 alt_program(int giden_degisken);

void main(void){
int16 i=0;
int j=15;
.
.
.
i=alt_program(j);
while(1);
}

int16 alt_program(int giden_degisken){
giden_degisken=giden_degisken+1;
return (giden_degisken);
}
En tehlikeli an "zafer" anıdır.

MrDarK

Program ağacı kurup görevleri dağıtabilirsin ;

mesela ;

program ana döngünü şu şekile getir ;
void deger_topla (void)
{
islemler...
}

void karar_ver (void)
{
islemler...
}

void ekranda_goster (void)
{
islemler...
}

while(1)
{
deger_topla();
karar_ver();
ekranda_goster();
}
Picproje Eğitim Gönüllüleri ~ MrDarK

musti463

alt program işini yaptım sayılır fakat mesela fonksiyon1.h adında bir dosyamız olsun ve ana programımızda bu fonksiyon1.h içerisinde bulunan herhangi bir değişkenin değerini anaprogramda kullanmak istiyorum bunu hangi komutla yapıyoruz?
Mustafa Emir SADE

MrDarK

fonksiyon alt programını yazarken başına ne tür bir değer geri döndereceksen o şekilde başlamalısın.

Örnek alt program int deger döndürmek için

int fonksiyon1 (void)
{
int deger;
deger=islemler...

return deger;
}



Ana programındada şu şekilde işlem yaparsın ;

value=fonksiyon1();


Ayrıca bunlar komut değil , C yazım kurallarıdır. Evrensel :) Derleyiciye özgü birşey değil yani. Bunuda belirtmekte fayda var.
Picproje Eğitim Gönüllüleri ~ MrDarK

musti463

Mustafa Emir SADE

MrDarK

Picproje Eğitim Gönüllüleri ~ MrDarK

hasankara

.h dosyasının içinde yapacağınız değişken tanımlaması global bir değişken olur. bu değişkeni de, .h dosyasını tanımladığınız her .c dosyasının içinde ortak kullanabilirsiniz. bunun dışında fonksiyon giriş çıkış parametreleri olarak ta çözebilirsiniz.