宏定义只是起一个替换的作用,运算的顺序取决于替换后的式子
#include<stdio.h> #include<stdlib.h> //带参宏指令 #define SUB(a,b) a-b #define sub(a,b) (a)-(b) //无参宏指令 #define pr ("%d\n",c) int main() { //初始化 int a=3,b=2; int c; //运算 c=SUB(a,b); printf pr; c=SUB(3,1+2); printf pr; c=sub(3,1+2); printf pr; system("pause"); return 0; }