C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用的参数称为实际参数。 对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。
带参宏定义的一般形式是; #define 宏名(形参表列) 字符串
//有参宏 #defineSUM(a)a + b #defineM(x, y)x * y + x + y #define M1(a, b)a + 3 * y
int main(intargc, const char * argv[]) { // insertcode here...
int b = 3; int result = SUM(3); //在调用中要把实参带入 printf("result =%d\n", result);
int result2 = M(2, 3); //x * y + x + y //2 * 3 + 2 + 3 = 11 printf("result2 =%d\n", result2);
int y = 2; int result3 = M1(4, 5); //a + 3 * y //4 + 3 * 2 = 10 printf("result3 =%d\n", result3);
|