【发布时间】:2011-02-17 05:06:21
【问题描述】:
我正在尝试制作一个简单的预处理器循环。 (我意识到这是一个可怕的想法,但是哦。)
// Preprocessor.h
#ifndef PREPROCESSOR_LOOP_ITERATION
#define MAX_LOOP_ITERATION 16 // This can be changed.
#define PREPROCESSOR_LOOP_ITERATION 0
#endif
#if (PREPROCESSOR_LOOP_ITERATION < MAX_LOOP_ITERATION)
#define PREPROCESSOR_LOOP_ITERATION (PREPROCESSOR_LOOP_ITERATION + 1) // Increment PREPROCESSOR_LOOP_ITERATION.
#include "Preprocessor.h"
#endif
问题在于它看起来不像PREPROCESSOR_LOOP_ITERATION 正在递增,所以它只是无限地包含自己。如果我将该行更改为实际整数(如17),预处理器会正确跳过#include 指令。
我做错了什么?
【问题讨论】:
标签: c++ loops c-preprocessor