Sida 1 av 1

Backslash i AVR-GCC

Postat: 5 juni 2013, 23:34:46
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);

Re: Backslah i AVR-GCC

Postat: 5 juni 2013, 23:41:17
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);

Re: Backslash i AVR-GCC

Postat: 6 juni 2013, 00:21:37
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
  );

Re: Backslash i AVR-GCC

Postat: 6 juni 2013, 21:34:06
av Adis
Mycket riktigt! Tack.