alibaba/BeeHive

@BeeHiveService 前面的@ 可以理解调用宏定义吗

Opened this issue · 4 comments

@BeeHiveService(UserTrackServiceProtocol,BHUserTrackViewController)

#define BeeHiveService(servicename,impl)
class BeeHive; char * k##servicename##_service BeeHiveDATA(BeehiveServices) = "{ ""#servicename"" : ""#impl""}";

@BeeHiveService(UserTrackServiceProtocol,BHUserTrackViewController)

#define BeeHiveService(servicename,impl)
class BeeHive; char * k##servicename##_service BeeHiveDATA(BeehiveServices) = "{ ""#servicename"" : ""#impl""}";

不是的
实际上是 @ 和 宏里面的 class BeeHive 字符串拼接成 一个 forward class 类的声明 @class BeeHive

哦 , 那 ## 是什么意思呢

哦 , 那 ## 是什么意思呢

## 是宏字符串连接

哦 , 那 ## 是什么意思呢

## 是宏字符串连接

其实不能叫字符串连接,应该算是字面量连接,毕竟是不带引号的