Sida 2 av 2

Postat: 6 maj 2008, 19:01:41
av JonasJ
Char* och char[] är inte samma sak. Se tex här: http://gcc.gnu.org/ml/gcc-bugs/2001-04/msg00587.html

Ena fallet får du storleken på en pekaren, i andra fallet storleken på arrayen.

Viktigt att hålla reda på när man programmerar t.ex. mikroprocessorer så att dina strängar som du vill kunna ändra på inte hamnar i flashminnet.

Edit: Stavfel och fixade länken (var en punkt på slutet).

Här förklaras det bättre:
http://www.codeguru.com/forum/showthread.php?t=351721

Läs posten från SuperKoko (roligt namn, han är nog inte svensk :))

Postat: 6 maj 2008, 19:40:49
av SvenW
Ibland tänker man att det är språket C som är SuperKoko :wink:

Postat: 6 maj 2008, 21:33:05
av JonasJ
Hehe, jag tycker att C är ett ganska skönt språk men man kan bli lite yr i huvudet av alla pekare hit och dit, speciellt när man använder dubbel eller trippelpekare. Jag skulle inte vilja göra några större säkerhetskritiska system med C.

Denna sida är rätt trevlig att skumma igenom
http://www.faqs.org/faqs/C-faq/

Finns mycket matnyttig där.

Edit: Stavar som en gorda :)

Re: string i C

Postat: 7 maj 2008, 13:29:06
av bos
baltazar skrev:Såhär skriver jag idag:
printf(lcd_putc,"Hello world");
Vad innehåller lcd_putc? Det låter som en funktion. printf() ska inte ha funktioner som argument.

Postat: 7 maj 2008, 15:27:11
av baltazar
lcd_putc är en funktion som ligger i en .h-fil som man använder för att kommunicera med LCD display. Den tar emot en char i taget. Men jag funderar på att göra mitt program på ett annat sätt så att jag slipper att använda string.

Postat: 7 maj 2008, 15:50:05
av bos
OK. Du använder iallafall printf() helt fel eftersom funktionen enbart hanterar strängar, inte funktioner som argument. Gör istället en egen print-funktion till ändamålet, typ såhär:

Kod: Markera allt

void my_lcd_print(char *str) {
  while (*str) lcd_putc(*str++);
}
Anropa med my_lcd_print("Hello world");.