c++ - 如何编写一个没有变量的for循环?

标签 c++ c for-loop increment

我想直接写一个for循环,不带任何变量。可能吗?

示例:

for (1; 1 <= 4; ++) {
  printf ("Loop working\n");
}

预期输出:

Loop working
Loop working
Loop working
Loop working

最佳答案

您需要一个变量来保持计数,但您可以隐藏它。

#include <stdio.h>

#define JOIN(a, b) (a ## b)
// WARNING: don't LOOP in the same line
#define LOOP(n) for (unsigned JOIN(HIDDEN, __LINE__) = 0; JOIN(HIDDEN, __LINE__) < n; JOIN(HIDDEN, __LINE__)++)

int main(void) {
    LOOP(4) {
        printf("foo");
        LOOP(2) printf(" bar");
        puts("");
    }
    return 0;
}

See code running on ideone

输出

foo bar bar
foo bar bar
foo bar bar
foo bar bar

关于c++ - 如何编写一个没有变量的for循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54671709/

相关文章:

r - 使用一个 df 中的名称创建另一个数据帧的相同列副本

c++ - 了解 std::isnan 的编译结果

c++ - 异常处理 - set_unexpected() 无法调用

c - 如何在 C 中返回未使用的分配内存?

c - NodeJs 和 C 子进程之间通信的最佳方式

Java从对象/值的无序集合/列表中生成唯一的id

java - 6 次迭代后,在 for 循环中将新值赋给 double

c++ - 从多态容器中提取已知接口(interface)时的奇怪行为

c++ - 使用 C++ 在 OpenCV 中实现 Matlab 函数 'rgb2ntsc'

c++ - 更改代码块中的链接器顺序