Hallå alla glada!
jag tänkte skriva min printf funktion till en dsPIC, och använder kompilatorn C30.
Deklarationen av printf ser ut ung såhär:
void print(char *ptr,...);
Jag är inte familjär med hur "..." används i C. Är det någon form av standard variabel i form av pekare eller??
För jag skulle gärna viljat kunna skrivat.ex
int i = 10;
float fl = 3.2;
printf("talet %i motsvarar %x i hex, nur är det %f grader varmt ute" ,i ,i,fl );
Men jag vet inte riktigt hur man når variablerna i och fl i min funktion.
Någon som vet??
C-kod, printf fråga
"..." betyder väl bara att "här kommer det mera" !?
Sen, vart hamnar resultatet av fprint ?
Hela iden med fprint verkar lite konstig på en microcontroller,
tycker jag i alla fall...
Slutligen, behöver du verkligen det dynamiska området som
en float omfattar bara för att representera en temperatur med
en decimal ? Verkar overkill. Fixed point borde duga bra.
Sen, vart hamnar resultatet av fprint ?
Hela iden med fprint verkar lite konstig på en microcontroller,
tycker jag i alla fall...

Slutligen, behöver du verkligen det dynamiska området som
en float omfattar bara för att representera en temperatur med
en decimal ? Verkar overkill. Fixed point borde duga bra.
-
- Inlägg: 520
- Blev medlem: 31 maj 2003, 10:42:37
- Ort: Helsingborg
Kernighan & Ritchie sidan 156, där står hur man gör en minimal printf.
Kopierat valda delar:
Kopierat valda delar:
Kod: Markera allt
void minprintf(char *fmt, ...)
{
va_list ap; //pekare till argument
double dval;
int ival;
...
va_start(ap, fmt); // ap ska nu peka på första argumentet
...
ival = va_arg(ap, int); //va_arg() returnerar ett argument och flyttar ap så den pekar på nästa.
//Typnamnet avgör vilken typ som returneras och hur mycket ap ökas.
dval = va_arg(ap, double);
va_end(ap); //Slutligen lite cleanup
}
-
- Inlägg: 520
- Blev medlem: 31 maj 2003, 10:42:37
- Ort: Helsingborg