我有一个这样的图书馆:
mylib
|__ device
|__ lcd.h
|__ lcd_config.h
|__ lcd.c
.
// File lcd.h
#include lcd_config.h
void function initLcd();
void function writeLcd();
.
// File lcd.c
#include lcd.h
void function writeLcd(){
// some code
}
.
// File lcd_config.h inside mylib
#ifndef lcd_config_H
#define lcd_config_H
#define TEST 10
#endif
我想在项目中使用该库,但我想重新定义配置文件。
myproject
|__ lcd_config.h
|__ mylcd.c
|__ main.c
.
// File lcd_config.h inside myproject(at main.c level)
#ifndef lcd_config_H
#define lcd_config_H
#define TEST 20
#endif
.
// File mylcd.c
#include lcd.h
void function initLcd(){
printf("%d", TEST);
}
.
// File main.c
#include "device/lcd.h"
int main(void) {
initLcd(); // print 10
}
.
// File main1.c
#include "lcd_config.h"
#include "device/lcd.h"
int main(void) {
initLcd(); // print 10 too
}
在我的项目中,我希望 TEST = 20,我该如何实现?
更新
现在看文件,这是我的真实情况。
要打印 TEST=20 我必须把#include lcd_config.h
before #include lcd.h
inside mylcd.c
。如果我把它放在主文件中(如 main1.c) 10 将被打印,我认为预处理在 mylcd.h 之前查看 main.c。
谢谢