Fonksiyona parametre olarak "metin gönderme"

Başlatan bymrz, 13 Haziran 2011, 14:09:09

bymrz

Merhaba arkadaşlar;

printf komutunu biliyorsunuz. printf("metin yazisi") dediğinizde herhangi bir string dizisi vs. tanımlamadan direk fonksiyonun içerisine girilen yazıyı fonksiyona gönderebiliyoruz.

Ben de öyle bir fonksiyon yapmak istiyorum ki(belki macro olacak bilemiyorum) gonder("metin deneme"); dediğimde gonder fonksiyonu çağırılsın ve fonksiyonun içerisinde karakterler sıra ile alınsın ve gerekli işlemler için yorumlansın. Bunu şu an aşağıdaki şekilde yapabiliyorum;

unsigned char Text_Array[]="metin deneme";



void main(void)
{
gonder(&Text_Array,uzunluk);
}


void gonder(unsigned char *text_ptr, unsigned char array_lenght)
{
unsigned char temp;

   for(temp=0;temp<array_lenght;temp++)
   {
   islem(*text_ptr);
   text_ptr++;
   }
}



Fakat bahsettiğim şekilde stringi direk olarak komutun içine yazarak nasıl yapabilirim?

arslan74

Merhaba,

void
lcd_puts(const char * s)
{
	LCD_RS = 1;	// write characters
	while(*s)
		lcd_write(*s++);
}


Fonsiyonu bu şeklide cağrırsan sorun olmaz.

lcd_puts ( "Merhaba Dunya!" );


Selamlar

bymrz

sağol hocam... const char ile code char da aynıdır diye düşünmüştüm fakat "code char" yazdığımda kabul etmedi....

Bir de hocam, while(*s)  olayında NULL karakteri nasıl algılanıyor, daha doğrusu nasıl yerleştiriliyor. İşin sırrı " "  (tırnak işareti) nde mi?

arslan74

Alıntı yapılan: alone_lover - 13 Haziran 2011, 15:13:00
sağol hocam... const char ile code char da aynıdır diye düşünmüştüm fakat "code char" yazdığımda kabul etmedi....

Bir de hocam, while(*s)  olayında NULL karakteri nasıl algılanıyor, daha doğrusu nasıl yerleştiriliyor. İşin sırrı " "  (tırnak işareti) nde mi?

Evet işin sırrı tırnak işaretinde, Çünkü yazının sonunda mutlaka NULL karakteri otomatik yerleştirilir. Bizde sona geldiğini NULL işaretinden anlıyoruz.