Çözüldü! CcsC parametre olarak string ifade işleyen fonksiyon.

Başlatan RaMu, 22 Eylül 2014, 15:35:45

RaMu

(Eski konu başlığı "CcsC nin printf fonksiyonunu nerede tanımlı? İçini görebiliyor muyuz?")

CcsC nin printf fonksiyonuna benzer bir fonksiyon lazım,
örnek olması için CcsC nin printf fonksiyonu nasıl yazılmış incelemek istiyorum,
fakat bu fonksiyon nerede tanımlı bulamıyorum,
bilen varmı nerede bu fonksiyon?


Detay verecek olursam,
Nokia6100 lcd için bir programı devşiriyorum,
lcd_karakter_yaz('A', ve nereye ne renk yazılacağı bilgisi vs.)
gibi bir fonksiyon var, gayet güzel çalışıyor,
ama
lcd_yazı_yaz("Yazılacak yazı", nereye ne renk yazılacağı bilgisi vs.)
fonksiyonunu ccsc ye uyarlayamadım,
"..." tırnak işaretleri arası pic rom hafızada oluyor,
bunları çekip tek tek lcd_karakter_yaz fonksiyonuna basmak lazım,
bunu en iyi printf yapmıştır diye düşündüm,
o nedenle bulabilirsem incelemek istiyorum.

Ayrıca konu ile yakından ilgisi olan Mucit23 ün açtığı
Rom'daki bir Diziyi Ram'deki Pointer'a kopyalama başlık ve onuda inceliyorum
ama şuan sonuç alamadım;
https://www.picproje.org/index.php/topic,54106.msg412554.html#msg412554
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html


mir_as82

int main()
{      //string literal
   char s[2][20] = {"pic", "proje"};
    int i;
   for ( i = 0; i < sizeof(s)/sizeof(s[0]); i++)  //bas harflerini yazdirir
   printf("%c\n", s
  • );
       return 0;

    }

    tek tek yazmak için belki fikir verir.

MrDarK

Hocam genel olarak C dillerinde printf fonksiyonu putch prototipini kullanır, nereye kadar basacak diyorsanız yüklediğiniz array pointer başlangıcından null karakteri görene kadar basacaktır.

Diğer tür dönüşümlerini de nasıl yapıyor açıkçası pek bir fikrim yok.
Picproje Eğitim Gönüllüleri ~ MrDarK

Burak B

"... a healthy dose of paranoia leads to better systems." Jack Ganssle

RaMu


Değerli bilgiler ve linkler için herkese tek tek teşekkür ederim,
aslında kafam karıştı pekte anlamadan yaptım ama,
zamanla oturur diye düşünüyorum.

İstediğimi yaptım,
kendi lcd fonksiyonuma istediğim gibi
string ifadeyi yazdırabildim,
yukarıda linkleri verilen sayfaları epey kurcaladım
ama herhalde kilit nokta
fonksiyonu şu şekilde tanımlamak oldu
void cok_karakter_isleyen_fonk(rom char *goster , varsa_diger_parametreler)
{
   while(*goster != '\0')  //işlenen stringin son karakteri gelene kadar
      {
      tek_karakter_isleyen_fonk(  *goster++  ,  varsa_diger_parametreler);
      //stringden karakterleri tek tek çek ve tek_karakter_isleyen_fonk fonksiyonunda kullan
      }
 }


ayrıca yukarıdaki fonksiyonun içindede kullanılan foksiyonda şöyle tanımlı;

void tek_karakter_isleyen_fonk(  char degisken_C  ,  varsa_diger_parametreler)
{//degisken_C ye üstteki fonksiyondan gelen karakter ile yapılan  işlemler}



Kullanırken ise

//birden fazla karakter yazmak için
cok_karakter_isleyen_fonk("ne yazacaksak", varsa_diger_parametreler);
//fonksiyonunu bu şekilde kullanıyorum
veya
//tek karakter yazmak için
tek_karakter_isleyen_fonk(  'R'  ,  varsa_diger_parametreler);

//şeklinde kullanıyorum,



Unutmadan birde fonksiyon prototipleri kullandım;
(bunlar fonksiyon prototipi herhalde yanlışsam düzeltin lütfen)

void cok_karakter_isleyen_fonk(rom char * , varsa_diger_parametrelerinde_türleri);

void tek_karakter_isleyen_fonk(  char  ,  varsa_diger_parametrelerinde_türleri);


Bunlarda hiçbir değişken yok sadece türleri yazılıyor,
recursive falan mı ne oldu,
bu işide anlamadım zaten,
ama evirdiğim koddaki kullanım böyleydi
bende devam ettirdim,
dediğim gibi tam anlamadım zaten.

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html