c/c++语言开发共享有什么方法可以用预处理器替换部分字吗?

我的Objective-C类中有类似的东西

@interface PREFIX_MyClass { ... @end 

我想使用预处理器将其转换为:

 @interface AwesomeMyClass { ... @end 

所以像

 #define PREFIX_ Awesome 

不起作用,因为它是一个单词的一部分。 还有别的办法吗? 我知道我可以使用这样的东西:

 #define PrefixClass(NAME) Awesome##NAME @interface PrefixClass(MyClass) 

但我不喜欢这样,因为它打破了代码完成并在开发工具中引用了以下内容(即:在这种情况下为Xcode)

    这不是很优雅,但您可以使用预处理器来替换整个类名而不仅仅是part。

     #define PREFIX_MyClass AwesomeMyClass @interface PREFIX_MyClass 

    当然,如果您多次使用前缀并且它发生变化,这就成了一个问题。 你可以通过使用另一个调用另一个宏来添加前缀来解决这个问题,这样只有一个宏包含实际的前缀。

     #define ADD_PREFIX(name) Awesome##name #define PREFIX_MyClass ADD_PREFIX(MyClass) @interface PREFIX_MyClass 

    对于您想要添加前缀的所有内容,仍然需要一个宏,但代码完成将识别PREFIX_MyClass名称。

    这并不是您要求的,但它可能是实现目标的另一条途径。 Xcode允许您为项目定义类前缀。 在文件导航器中选择项目,然后在文件检查器(右侧边栏的第一个“选项卡”)中,您将拥有以下内容:

    有什么方法可以用预处理器替换部分字吗?

    无论您在“类前缀”字段中输入的是什么文本,都会在您在该项目中创建的任何类的名称前加上。

      以上就是c/c++开发分享有什么方法可以用预处理器替换部分字吗?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560192.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐