[英]Preprocessor directive (define) not found by compiler
我正在开发一个库,其中某些变量的大小取决于#define,而某些#define取决于其他#define的值而创建。
例如
int variable1[SIZE_USER]
#if SIZE_USER>3
#define CONDITION 1
#else
#define CONDITION 0
#endif
这个想法是,当用户想要使用该库时,他们会在其中创建带有所有所需预处理指令(#define)的头文件,并在与“ main.cpp”文件相同的目录中使用该文件,而不是在同一目录中使用该文件。在库源文件中。
问题是,当我将配置文件(具有所有#define的文件)包含在库的所有头文件所在的同一目录中时,我没有问题。
即
#include <config.h>
//My Library Code...
但是,如果我在库的源文件之外声明配置头文件,则编译器将找不到在“ main.cpp”文件中声明的#define。
即
#include<config.h>
#include<myLibrary.h>
//User code...
关于编译器的工作方式,我是否缺少明显的东西?
#define SIZE_USER 4
int variable1[SIZE_USER]
#if SIZE_USER > 3
#define CONDITION 1
#else
#define CONDITION 0
#endif
第一个问题是#if指令中缺少空格。
#include "myLibrary.h"
第二个问题:对包含的标题和空格使用“”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.