私はこのようなライブラリを持っています:
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 を印刷するには、 inside の#include lcd_config.h
前に置く必要があります。それをメインファイル(main1.cなど)に入れると、10が印刷されます。前処理は、main.cのmylcd.h内で前処理を行うと思います。#include lcd.h
mylcd.c
ありがとう