Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: Seferi - 08 Ocak 2019, 00:10:05

Başlık: CCS C string alan fonksiyon tanımlayamama
Gönderen: Seferi - 08 Ocak 2019, 00:10:05
Merhaba string alan bir fonksiyon tanımlamaya çalışıyorum ama bir türlü programı çalıştıramadım. Bu konuyla ilgili  forumda konular var ama bir çözüm göremedim.
void string_yolla(char *s)
{
   while(*s)
      fputc(*s++,PC);
}
string_yolla("denem");

Bu şekilde bir string alan bir fonksiyon tanımladığım da "Attempt to create a pointer to a constant" hatasını alıyorum. Kodun yazmadığım bölümlerinde sorun yok. Zaten kod uzun değil seri porttan karakter yolluyordum. String yollamak için hazır fonksiyonlar yerine bu fonksiyonu kullanmak istiyorum.
Başlık: Ynt: CCS C string alan fonksiyon tanımlayamama
Gönderen: OptimusPrime - 08 Ocak 2019, 00:26:24
void string_yolla(const char *s)
ise yarayablir veya
"denem" i bi degiskenin icine atip sonra
string_yolla(degisken); i cagirabilirsin.
Başlık: Ynt: CCS C string alan fonksiyon tanımlayamama
Gönderen: fide - 08 Ocak 2019, 00:35:11
String göndermek yerine stringin hafızadaki adresinin başlangıç yerini gönder. Pointer kavramına yabancı değilsin. Burda da kullan.
Başlık: Ynt: CCS C string alan fonksiyon tanımlayamama
Gönderen: RaMu - 08 Ocak 2019, 00:52:46
Forumda bende sormuştum zamanında konuyu bulursam linkini eklerim.
İki çözümü var biri ramden yiyor saçma bir çözüm oluyor pass constants to ram gibi bir şeydi.

Asıl çözüm sabit diziyi ve kullanacak fonksiyonu
rom char
diye tanımlamak, aşağıdaki linkte ccsc ile birebir yapmaya çalıştığın için örnek var:
https://rmtulay.wordpress.com/category/ccsc/ccsc-rom-dizilerine-pointer-atama/
Başlık: Ynt: CCS C string alan fonksiyon tanımlayamama
Gönderen: Pyrodigy - 08 Ocak 2019, 01:08:31
Text için bir string tanımlarsın. (Burada nasıl text stringi tanımlama yapacağını bildiğini varsayıyorum)
Sonra string in başlangıç pointerini alıp Null karakteri görene kadar gönderecek yada alacak bir fonk. yazarsın.
Hepsi bukadar
Başlık: Ynt: CCS C string alan fonksiyon tanımlayamama
Gönderen: FeelYourMind - 08 Ocak 2019, 04:24:50
void string_yolla(const char *s)
{
   while('\0' != (*s))
   {
      fputc(*s++,PC);
   }
}
string_yolla("denem");

Bu şekilde dene çalışacaktır.