无参宏
这些宏没有参数,它们只是简单地将一个特定的文本替换为另一个文本
无参宏意味着使用宏的时候,无需指定任何参数,比如:
#define PI 3.14
#define SCREEN_SIZE 800*480*4
int main()
{
// 在代码中,可以随时使用以上无参宏,来替代其所代表的表达式:
printf("圆周率: %f\n", PI);
mmap(NULL, SCREEN_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, ...);
}
注意到,上述代码中,除了有自定义的宏,还有系统预定义的宏:
// 自定义宏:
#define PI 3.14
#define SCREEN_SIZE 800*480*4
自定义宏:
PI:将3.14定义为一个名为PI的宏,用于表示圆周率。
SCREEN_SIZE:将表达式800*480*4定义为一个名为SCREEN_SIZE的宏,用于表示屏幕尺寸。
// 系统预定义宏
#define NULL ((void *)0)
#define PROT_READ 0x1 /* Page can be read. */
#define PROT_WRITE 0x2 /* Page can be written. */
#define MAP_SHARED 0x01 /* Share changes. */
系统预定义宏:
NULL:将地址0强制转换为void*类型,并定义为一个名为NULL的宏,通常用于表示空指针。
PROT_READ:将十六进制数0x1定义为一个名为PROT_R