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.
void string_yolla(const char *s)
ise yarayablir veya
"denem" i bi degiskenin icine atip sonra
string_yolla(degisken); i cagirabilirsin.
String göndermek yerine stringin hafızadaki adresinin başlangıç yerini gönder. Pointer kavramına yabancı değilsin. Burda da kullan.
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/
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
void string_yolla(const char *s)
{
while('\0' != (*s))
{
fputc(*s++,PC);
}
}
string_yolla("denem");
Bu şekilde dene çalışacaktır.