1

我有两个 C 文件,一个叫main.c另一个batterysaver.c. 我不想将我在文件中的代码包含在batterysaver.c文件main.c中并使用条件编译,而是希望有两个单独的文件,但能够在给定预处理器指令的情况下设置编译哪个文件。这可能吗?

这是main.c文件的标题:

//standard header
#include "pebble.h"
#include "iota.h"
#define BATTERY false

//app-specific data
Window *window; //obvious window is obvious
TextLayer *time_layer; //time layer

#if !BATTERY
*REST OF FILE STARTS HERE, THEN AT THE END*
#endif

这是batterysaver.c文件的标题:

#include "main.c"

#if BATTERY
*REST OF FILE STARTS HERE, THEN AT THE END*
#endif

我感谢任何和所有的帮助。

4

1 回答 1

0

.cc在另一个文件中包含一个文件.cc表示设计不干净。

您可以根据是否已定义有条件main.cc地编译入/出部分代码。batterysaver.ccBATTERY

如果这不起作用,您必须问自己如何将通用声明放入.h文件中并将该.h文件包含在两个.cc文件中。

my_common.h

#ifndef MY_COMMON_H
#define MY_COMMON_H

//standard header
#include "pebble.h"
#include "iota.h"
#define BATTERY false

//app-specific data
extern Window *window; //obvious window is obvious
extern TextLayer *time_layer; //time layer

#ENDIF

main.cc

#include "my_common.h"

Window *window; //obvious window is obvious
TextLayer *time_layer; //time layer

#if !BATTERY
*REST OF FILE STARTS HERE, THEN AT THE END*
#endif

battarysaver.cc

#include "my_common.h"

#if BATTERY
*REST OF FILE STARTS HERE, THEN AT THE END*
#endif
于 2014-04-25T17:16:50.723 回答