注解是Java中的功能,C++并没有注解。但可以通过其他方式支持注解。
通过 __attribute__
实现
__attribute__
是GUN的一个特色,它可以设置函数属性、变量属性和类型属性。如果你的C++最终通过GUN编译,可以使用该方法实现类似注解的效果。
例如,__attribute__((noreturn))
表示函数不会返回,编译器会忽略掉函数最后没有返回值的情况;__attribute__((const))
表示方法多次调用返回值相同,编译器会优化掉多余的函数调用。
通过宏定义实现
另一种方式是通过宏定义实现。在这种情况下,通常要搭配自定义生成步骤来对代码进行预处理。
例如,Qt添加了Q_OBJECT
、Q_SLOTS
、emit
等宏,它们会在qmake
阶段起作用,生成额外的C++代码,然后再执行正常的编译步骤。