解疑 c 编程 反斜杠 的用法

2020-02-21 20:48发布

今日在查看一下一个网友的程序,看到如图, 里面的反斜杠用法从来没有见过,希望大家指点一下,多谢!

#ifndef __LED_H
#define        __LED_H

#include "stm32f40x.h"
#define ON  0
#define OFF 1

#define LED1(a)        if (a)       
                                        GPIO_SetBits(GPIOB,GPIO_Pin_5);
                                        else               
                                        GPIO_ResetBits(GPIOB,GPIO_Pin_5)

#define LED2(a)        if (a)       
                                        GPIO_SetBits(GPIOB,GPIO_Pin_6);
                                        else               
                                        GPIO_ResetBits(GPIOB,GPIO_Pin_6)

#define LED3(a)        if (a)       
                                        GPIO_SetBits(GPIOB,GPIO_Pin_7);
                                        else               
                                        GPIO_ResetBits(GPIOB,GPIO_Pin_7)

void LED_GPIO_Config(void);

#endif

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
mq-life
1楼-- · 2020-02-25 20:43
 精彩回答 2  元偷偷看……
takashiki
2楼-- · 2020-02-26 02:07
zzj0329 发表于 2014-9-7 20:31
大家能把这些特殊用法做一个总结贴么,貌似还有三个井号或者三个点的用法 ...

三个#号?没有见过。一个#表示生成字符串,#@表示生成字符,##表示连接,###这是栅栏,防止小猪跑出来
...在最初的C语言中表示函数的可变参数,后来有了C++,用作捕获所有异常,后来有了C99,在宏定义中定义可以表示可变参数
四个点那是::,C++中太常见了

C/C++中特别变态的转义字符??,估计绝大多数人没有见过,搞不好在字符串操作中会吃亏的。
这里列出一些:比如这样:int i = ??-1;可以编译通过,strlen("??!")等于1。
     ??=       #
     ??/      
     ??'       ^
     ??(       [
     ??)       ]
     ??!       |
     ??<       {
     ??>       }
     ??-       ~
剑舞
3楼-- · 2020-02-26 05:03
taojie 发表于 2014-9-7 20:58
你说得对, 宏定义必须放同一行,中秋快乐!

同乐,开源快乐,共享开心,让我们把阿莫的开源共享精神进行到底

一周热门 更多>