c - 在 c 中使用括号
问题描述
关于括号的使用,以下两个陈述有什么区别?(没有指针左右)
#define UART1_BAUD (460800)
#define UART2_BAUD 9600
解决方案
宏通常用作表达式中的操作数时没有区别。
但请注意,在
#define A 4 + 7
#define B (5 + 3)
如果您将宏用作
int a = 6 * A; // 6 * 4 + 7 ==> 24 + 7
int b = 6 * B; // 6 * (5 + 3) ==> 6 * 8
根据经验:在宏中使用和滥用括号。
当括号紧跟在宏名后面时,它是一个类似函数的宏
#define SQUARE(BAR) ((BAR) * (BAR)) // use and abuse parenthesis
推荐阅读
- javascript - iframe 再次渲染 localhost 而不是我从 props 传入的网站
- dataframe - 通过反斜杠拆分字符串列
- ios - ios使用复制方法调用块目标,但崩溃了
- ios - Xcode 12 中的“使用自动布局”复选框在哪里?
- android - 在 Flutter 上滚动 Listview 的问题
- google-chrome - 我在笔记本电脑 chrome 中丢失了密码,但我仍然在谷歌中保存密码
- flutter - 使用凸起按钮显示对话框
- javascript - 字节范围请求在 iOS Safari 上不起作用
- javascript - 如何从 json api 的 JavaScript 中的数组中获取嵌套元素
- apache-kafka - 当有多个生产者时,如何在 kafka 中一次性交付