c - 用于在 C 中创建关键字的预处理器指令

标签 c compilation macros preprocessor

我想创建这个...

int main(void) {
  int i;

  for(i = 0; i < 10; i++){
    //Not an important Code
  }
  return 0;
}

以更奇特的方式,创造疯狂的想法!
可以这样重写吗?

#define A f
#define B or

int main(void) {
  int i;

  AB(i = 0; i < 10; i++){
    //Not an important Code
  }
  return 0;
}

我需要知道是否可以创建由不同的 #defines 组成的简单 for 之类的指令

最佳答案

制作

#define A f
#define B or
#define C(x, y) x##y
#define D(x,y) C(x,y)

然后

D(A, B)(i = 0; i < 10; i++)

将被重写为

for (i = 0; i < 10; i++)

关于c - 用于在 C 中创建关键字的预处理器指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55029623/

相关文章:

macros - Nemerle OperatorAttribute 参数

c# - 通过 Interop 为 Microsoft Access 创建宏

intellij-idea - 运行特定运行配置的宏

objective-c - 在另一个函数中声明的 NSMutableArray 中添加对象

c - 两个具有相同返回类型和名称但函数签名不同的函数的 c 程序出错

C++ 将 <limits> 库与 g++ 链接

c++ - g++ 包含其他目录中的文件

检查 Solaris 10 上正在运行的进程正在使用的堆

c - 纯 C 中的 Knuth-Morris-Pratt 实现

c++ - 即使缺少函数定义,编译也会成功