C语言代码规范(七)#define
生活随笔
收集整理的這篇文章主要介紹了
C语言代码规范(七)#define
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#define 宏定義的使用
#define MAX(x, y) ( ((x) > (y)) ? (x) : (y) ) #define MIN(x, y) ( ((x) < (y)) ? (x) : (y) )在宏定義中要把參數用括號擴起來( ((x) > (y)) ? (x) : (y) )。
因為宏只是簡單的文本替換,如果不注意,很容易引起BUG。
多用括號也保證宏定義不會對閱讀造成歧義。
錯誤的例子
#include <stdio.h>#define SQR(x) (x * x)int main(void) {int a = 0, b = 3;a = SQR(b + 2);printf("a = %d\n", a);return 0; }例子中的意圖是將b+2的二次方的值賦給a,但是宏定義會展開為a = (b + 2 * b + 2),所以a被賦值為11,而不是25。
因此宏定義應該修改為
#define SQR(x) ((x) * (x))?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的C语言代码规范(七)#define的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C学习杂记(二)笔试题:不使用任何中间变
- 下一篇: C语言代码规范(八)使用const修饰值