这几天正在看ATMEL的ARM处理器AT91SAM7X256,在其官方的头文件中发现有如下宏定义:
#define SPI0_PINS (AT91C_PA17_SPI0_MOSI   | \
       AT91C_PA12_SPI0_NPCS0   | \
       AT91C_PA13_SPI0_NPCS1 | \
      AT91C_PA16_SPI0_MISO    | \
      AT91C_PA14_SPI0_NPCS2   | \
      AT91C_PA18_SPI0_SPCK    | \
      AT91C_PA15_SPI0_NPCS3)

就很纳闷,这一个反斜杠是什么个意思呢?网上搜索了一下,才发现原来反斜杠除了转义字符的作用外,还有强制换行的作用,真心觉得自己了解的基本知识太少了哇!有时候一个语句太长,一行写不下,或者显得不美观,为了便于阅读,可以将较长的语句拆分成两行甚至多行,除了最后一行之外,在每一个分行后面加一个反斜杠“\”,这样编译的时候,系统会自动将这几个分行读成一个语句处理。比如:

1) 用在宏定义中:如上例所示

2) 用在printf中,语句太长,需要切分,也需用到反斜杠;

3) 用“//”进行单行注释时反斜杠也同样适用。

但若要取反斜杠的本意,则需要在反斜杠之前再加一个反斜杠才能正确表示。