我正在开发一个库,其中一些变量的大小取决于#define和一些#define,它们是根据其他#define的值创建的。
e.g。
int variable1[SIZE_USER]
#if SIZE_USER>3
#define CONDITION 1
#else
#define CONDITION 0
#endif
这个想法是,当用户想要使用库时,他们会创建自己的头文件,其中包含所需的所有预处理器指令(#define),并将此文件用于其中" main的同一目录。 CPP"文件是否在库源文件中。
问题在于,当我将配置文件(包含所有#define' s)包含在同一目录中时,我的所有头文件都没有问题。
即
#include <config.h>
//My Library Code...
但是如果我在我的库的源文件之外声明配置头文件,编译器就找不到在&#34; main.cpp&#34;中声明的#define&#39;文件。
即
#include<config.h>
#include<myLibrary.h>
//User code...
在编译器如何工作方面是否有一些明显的遗漏?
答案 0 :(得分:1)
#define SIZE_USER 4
int variable1[SIZE_USER]
#if SIZE_USER > 3
#define CONDITION 1
#else
#define CONDITION 0
#endif
第一个问题是缺少#if指令中的空格。
#include "myLibrary.h"
第二个问题:使用&#34;&#34;对于你所包含的标题和空格很重要。