14-define 定义常量和宏
14-define 定义常量和宏
define 是一个预处理指令。它有两种用法。
1、define 定义符号
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/* define 定义符号 */
#define MAX 1000
int main()
{
printf("MAX = %d\n", MAX);
return 0;
}

2、define 定义宏
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/* define 定义宏 */
#define ADD(X, Y) X + Y
int main()
{
printf("ADD(2, 3) = %d\n", ADD(2, 3));
return 0;
}

(1)问题
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/* define 定义宏 */
#define ADD(X, Y) X + Y
int main()
{
printf("4 * ADD(2, 3) = %d\n", 4 * ADD(2, 3)); //本应是 20,结果却是 4 * 2 + 3 = 11
return 0;
}

(2)问题的解决
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/* define 定义宏 */
#define ADD(X, Y) (X + Y)
int main()
{
printf("4 * ADD(2, 3) = %d\n", 4 * ADD(2, 3)); // 4 * (2 + 3) = 20
return 0;
}


浙公网安备 33010602011771号