Backslash i AVR-GCC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Adis
Inlägg: 1373
Blev medlem: 26 augusti 2003, 19:57:03
Skype: adis1987
Ort: Gävle
Kontakt:

Backslash i AVR-GCC

Inlägg av Adis »

Min spontana tanke är ny rad. Men varför ;\ kan jag inte förstå. Berätta för mig nu :)

Kod: Markera allt

PORTB &= ( ~((1<<PORTB1)|(1<<PORTB7)));\
POC = (0<<POEN0A)|(0<<POEN0B)|\
(0<<POEN1A)|(0<<POEN1B)|\
(1<<POEN2A)|(1<<POEN2B);\
PORTB |=   (1<<PORTB6);
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Backslah i AVR-GCC

Inlägg av sodjan »

Är det inte bara ett nytt "statement" på samma rad?
Alltså samma sak som :

Kod: Markera allt

PORTB &= ( ~((1<<PORTB1)|(1<<PORTB7)));
POC = (0<<POEN0A)|(0<<POEN0B)|(0<<POEN1A)|(0<<POEN1B)|(1<<POEN2A)|(1<<POEN2B);
PORTB |=   (1<<PORTB6);
eller:

Kod: Markera allt

PORTB &= ( ~((1<<PORTB1)|(1<<PORTB7))); POC = (0<<POEN0A) [snip.....] <POEN2B); PORTB |=   (1<<PORTB6);
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Backslash i AVR-GCC

Inlägg av bearing »

Ifall man skriver ett makro på flera rader behövs backslash för att berätta att makrot fortsätter på nästa rad.

Kod: Markera allt

#define delay(n) \
  for (int temp; temp < n; temp++) \
  { \
    nop(); \
    nop(); \
  }
Utanför makron spelar radbyten inte någon roll, och kan göra koden tydligare

Kod: Markera allt

int a_function(
  int long_variable_names_that_will_extend_far_to_the_right,
  int and_make_the_code_difficult_to_read,
  int if_written_on_a_single_line,
  int instead_of_like_this
  );
Användarvisningsbild
Adis
Inlägg: 1373
Blev medlem: 26 augusti 2003, 19:57:03
Skype: adis1987
Ort: Gävle
Kontakt:

Re: Backslash i AVR-GCC

Inlägg av Adis »

Mycket riktigt! Tack.
Skriv svar