Sida 2 av 2

Postat: 22 november 2007, 16:05:27
av speakman
Rätt säker på att det är ANSI-C, men någon optimering (av annat än själva syntaxen) är det ju inte.

Och man ska kunna ha TAB i code-blocken. Men du måste nog göra "ordning" allt i en editor först, och sedan klistra in i inmatningsfältet.

Postat: 22 november 2007, 16:31:26
av GrodanB
Ja, kanske det... sidan är iofs. inte nått värd som bevis... men det fungerar i C kompilatorer (// komentaren tillhör inte heller C) Kan vara C99 eller nått... :)

Men den sidan verkar vara en bra ställe att hitta info om C programering får tacka för den länken.

Postat: 22 november 2007, 17:08:32
av speakman
Vem kör med // ? :P

Postat: 22 november 2007, 17:50:35
av björn
Jag :)

Postat: 22 november 2007, 18:02:25
av bearing
Många kompilatorer klarar inte nestlade /*kommentarer*/ så om man vill avkommentera ett block kod med hjälp av /**/ så måste ju kommentarerna i det blocket vara //-kommentarer.

Postat: 22 november 2007, 20:55:36
av JJ
Jag vet inte om jag missuppfattade vad som försökt sägas tidigare men såhär är det iallfall: logiska operationer returnerar 0 eller 1 . Exempel: värdet av (x==y) är alltid 0 eller 1.

// är C++ och C99 dvs ANSI.

Ett annat sätt att kommentera ut block är:

#if 0
kod
#endif

Postat: 22 november 2007, 21:26:35
av björn
DET kan väl knappast vara ett vanligt sätt att kommentera ut block, eller?

Postat: 22 november 2007, 21:29:57
av speakman
Jo, det är det vanligaste i större sammanhang. Linuxkerneln bl.a..
Många editorer markerar koden däremellan som vilken bortkommenterad kod som helst.

Postat: 22 november 2007, 21:59:16
av GrodanB
Nu för att göra nått riktigt vågat... Jag tänker gå lite On Topic...

Kan det verkligen vara det mest smidiga sättet att implementera en I2C kommunikation på en 18FXXX?

Verkar vara det sämsta sättet jag personligen kan komma på... men å andra sidan vet jag för lite om vad som händer för övrigt.

Postat: 22 november 2007, 23:41:06
av PHermansson
Jösses vilken diskution det blev :) Men inte mig emot, jag har lärt mig lite mer.
Noteras ska att det _inte _ är ren I2C utan bara något liknande (enligt vad jag läst mig till). Men visst borde det gå att göra bättre, tror koden var skriven för 80C51 eller nått sånt...

Postat: 2 december 2007, 00:14:12
av Ulf
#if 0
kod
#endif

är mycket vanlig. Dels förhindrar det som sagt nästade kommentarer och det blir tydligt i koden. Om man har flera ställen som man måste kommentera bort för att testa en viss sak och kanske togglar
den mellan olika körningar så kan man definiera 0:an till något vettigt:

# define PROBLEM_TEST 0

#ifdef PROBLEM_TEST
kod
#endif

så slipper man pilla på flera ställen!

Något helt annat som kan vara bra om pillar med makron i C är att
köra en fil genom enbart preprocessorn:

gcc -E dinfil.c

då kan man se vad som händer när man använder olika flaggor och definitioner och vad som går i väg till kompilatorn.