BeeHive icon indicating copy to clipboard operation
BeeHive copied to clipboard

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

Open jj89757hhb opened this issue 5 years ago • 4 comments

@BeeHiveService(UserTrackServiceProtocol,BHUserTrackViewController)

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

jj89757hhb avatar Jul 08 '19 08:07 jj89757hhb

@BeeHiveService(UserTrackServiceProtocol,BHUserTrackViewController)

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

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

lyandy avatar Jul 09 '19 11:07 lyandy

哦 , 那 ## 是什么意思呢

jj89757hhb avatar Jul 10 '19 00:07 jj89757hhb

哦 , 那 ## 是什么意思呢

## 是宏字符串连接

lyandy avatar Jul 10 '19 03:07 lyandy

哦 , 那 ## 是什么意思呢

## 是宏字符串连接

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

JianboYan avatar May 26 '20 02:05 JianboYan