C'de Fonksiyonlarda Opsiyonel Argüman Kullanımı

Başlatan kimlenbu, 15 Ağustos 2014, 13:55:06

kimlenbu

Selamlar,

Artık syntaxlar iyice karıştı bende. Keil'de stm32f4 için kod yazıyorum. "Function Overloading" var mı ? Aynı isimde bir fonksiyon daha yazınca 1500 tane hata veriyor.

Opsiyonel argüman kullanımına baktım, bir şey anlamadım, zaten "discontinued"  yazıyor.

http://www.keil.com/support/man/docs/ca/ca_va_start.htm

Opsiyonel argüman kullanımı için temel bir örnek kod paylaşır mısınız ?

MrDarK

Yazdığınız koddan küçük alıntı yapar mısınız aldığınız hataları görelim ?
Picproje Eğitim Gönüllüleri ~ MrDarK

kimlenbu

#2
Kullandığım tft ekranın bir menüsünde debug penceresi var, programın akışını buradan kontrol ediyorum. Eğer bu menü açıksa fonksiyonlaron gönderdiği bilgiler ekrana yazdırılıyor.

DebugMesaj fonksiyonuna yazı rengi parametresi eklemek istiyorum, eğer renk parametresi varsa istediğim renkte bassın, renk parametresi yoksa beyaz renkle yazsın istiyorum. Fonksiyonu düzeltebilirim ama yüzlerce kez kullanıldığı için her satırı tek tek düzeltmem gerekir.

Şu ekranda başarısız komutların kırmızı olmasını vs istiyorum :





void DebugMesaj(uint8_t *p,uint8_t AyniSatiraYaz)
{
	uint16_t x=0;
	uint16_t y=0;
	if(SeciliAltMenu==4)
	{
			if(AyniSatiraYaz==0){DebugMesajSatir++;}
			if(DebugMesajSatir==46){DebugMesajSatir=0;}
			
			if (DebugMesajSatir<23) //BIGILER SOL TARAFA YAZILIYORSA
			{
				x=15;
				y=131+DebugMesajSatir*10;
				if(DebugMesajSatir%2==0) //KOYU RENKLI SATIRSA
				{
					SSD1963_LCD_ShowString(x,y,p,BEYAZ,TDEGER3,&Font8x8);
				}
				else //Acik renkli satirsa
				{
					SSD1963_LCD_ShowString(x,y,p,BEYAZ,TDEGER,&Font8x8);
				}
				
			}
			else //BILGILER SAG TARAFA YAZILIYORSA
			{
				x=405;
				y=131+(DebugMesajSatir-23)*10;
				if(DebugMesajSatir%2==0) //KOYU RENKLI SATIRSA
				{
					SSD1963_LCD_ShowString(x,y,p,BEYAZ,TDEGER3,&Font8x8);
				}
				else //Acik renkli satirsa
				{
					SSD1963_LCD_ShowString(x,y,p,BEYAZ,TDEGER,&Font8x8);
				}
				
			}
			

	} //if(SeciliAltMenu==4) sonu
}


aşağıdaki şekilde bir fonksiyon daha tanımlayınca dünyanın hatası çıkıyor (main.c(4543): error:  #247: function "DebugMesaj" has already been defined)

void DebugMesaj(uint8_t *p,uint8_t AyniSatiraYaz,uint16_t renk)
{
//işlemler
}