【问题标题】:c++: #define a new skipping keyword / make compile ignore codec++: #define 一个新的跳过关键字/make compile 忽略代码
【发布时间】:2016-01-26 00:42:53
【问题描述】:

有没有办法做类似的事情

#define commentstart /*

或

#define ignore #ifdef 0

? 我基本上想让编译器忽略在我自己定义的两个关键字之间编写的任何代码。有什么建议吗?

示例

COMMENTSTART
whatever I write here will not be taken as code
COMMENTEND

【问题讨论】:

  • 抱歉,不,使这成为可能的功能被故意排除在 C 预处理器之外。我敢打赌这是重复的,但我手头没有链接。
  • 你想完成什么?
  • 我认为他有工作安全问题,想让代码不可读
  • 大家好。这个问题没有错。这家伙只是在征求意见。
  • 如 kirills 回答中所述:我想用它来介绍我自己的 cpp 代码,可以由我自己的解析器读取。

标签: c++ metaprogramming


【解决方案1】:

C/C++ 不允许在宏定义中使用预处理器语句。 cmets也是如此。评论不能跨越宏边界。

我认为您的 COMMENTSTART/COMMENTEND 想法不是一个好主意。当众所周知且有效的东西已经存在时,引入新东西有什么意义?如果你会写

#if 0
   ..............
#endif

每个人都会立即明白这是什么意思。多试几次,过一段时间就会适应了。

【讨论】:

  • 技术上:使 cpp 文件可被额外的代码解析器解析,但保持通常的代码布局。
猜你喜欢
  • 2013-07-11
  • 1970-01-01
  • 2013-01-18
  • 2020-06-25
  • 2018-09-24
  • 2016-07-19
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
相关资源
最近更新 更多