一、定义常量
简单常量定义
可以用#define在代码最上面来定义一个常量。
举个栗子:#define PI 3.14159。这里PI是一个常量,在下面你每次输入PI时,它就会自动换为3.14159。
表达式常量定义
也可以定义包含表达式的常量。
举个栗子:#define MAX (100+50)。这样,当代码中出现MAX时,就会被替换成(100+50)进行计算。
注意:对于较为复杂的表达式,最好用括号括起来,以确保运算顺序符合预期。
二、定义宏
无参数宏
类似于定义常量,但可以进行更复杂的文本替换。
举个栗子:#define PR-HELLOW printf (“Hellow!\n”)
酱紫的话下面再次提到PR-HELLOW时,就会直接替换为[printf(“Hello!\n”)]
有参数宏
可以通过定义带参数的宏来模拟函数的功能。
举个栗子:#define SQUARE(x)((x)(x))。
当代码中出现SQUARE(5)时,就会直接替换为5的平方。
注意:但是使用带参数的宏时要小心,因为宏只是简单的文本替换,可能会导致一些意想不到的错误。比如 SQUARE(a + b) 会被替换成 ((a + b)(a + b)) ,这和函数调用 square(a + b) (假设存在这个函数)的行为可能不完全相同,特别是在涉及到运算符优先级等情况时。