宏定义中的#和##作用

#

单井号(#)在宏定义中的作用就是  把传递过来的参数当成字符串进行替换

#define pl(param)  NSLog(@"%s参数地址---%p",#param,param)  

pl("xxx")

xxx参数地址---0x12345678

##

双井号(##)又称连接符,它的作用就是 将参数和前面或后面的子串连接起来,成为一个新的子串

#define GENERIC_MAX(type)     -(type) type##_max:(type)x :(type)y {return x > y ? x : y;}  

GENERIC_MAX(float) 

-(float) float_max:(float)x :(float)y {return x > y?x:y;}  

原文地址:https://www.cnblogs.com/wangchaoqun1997/p/6688438.html