我有这两个文件,functions.c和constants.h。
functions.c有这一行:
#include "constants.h"
但是,当我尝试编译functions.c时,functions.c函数无法从constants.c中找到这些常量。这些是const类型常量。我知道这是一个非常无聊的问题,但我不知道解决方案。
编辑: 文件内容(其中一些):
functions.c:
#include <string.h>
#include "Directivas.h"
...
int hayDirectivaInclude(char* buffer) {
if (strncmp(include, buffer, longInclude) == 0)
return 1;
else
return 0;
}
constants.h:
const char include[10] = { '#', 'i', 'n', 'c', 'l', 'u', 'd', 'e', ' ', 0 };
const int longInclude = 9;
答案 0 :(得分:0)
是否在constants.h
中声明了常量?你至少应该在那里声明它们,否则编译器在处理functions.c
时不会知道它们存在。
答案 1 :(得分:0)
您的constants.h
必须包含extern
对常量的引用。
例如,假设您在constants.c中有const char* COOL_STRING = "Erandros is cool."
。为了让functions.c
了解此字符串,您必须在extern char* COOL_STRING;
某处写constants.h
来告知其存在,例如{{1}}
答案 2 :(得分:0)
假设你已经在constants.h中声明了一些函数,并且它的定义是在constants.c中那么当你编译function.c时“只需要包含constants.h就不会包含那些函数的定义。所以它会给出错误...你需要同时编译两个.c文件。