选择 table 使用预处理器定义查找 table
selectable look-up table using pre-processor define
我有一个 c 程序,它使用在单独的 .c 文件中定义的查找 table。
c 程序实际上 运行 在 PIC24H 上,使用 MPLAB XC16 编译器编译。这不是特别相关,只是它为我正在尝试做的事情提供了动力。
我想要几个查找 table,每个都在它们自己的 .c 文件中。然后我想使用预处理器来定义将哪个 table 加载到程序代码中。
我不确定同一个 .c 文件中未使用的 table 是否会占用程序 space,或者编译器是否会忽略它们。
如果所有table都存储在程序代码中,这将占用宝贵的程序内存。
我主要是在寻找有关实施选择性查找机制的建议。我正在考虑以下内容,但不确定实际效果如何。
#define CLEVEL 75 // CLEVEL may be in set {45 60 75}
#if (CLEVEL==45}
#include "clevel45.h"
#elseif (CLEVEL==60}
#include "clevel60.h"
#elseif (CLEVEL==75)
#include "clevel75.h"
#endif
我不会混合将来不存在的文件,创建无用的依赖项。另一种方式:
your_cfg_file.h:
#define CLEVEL75
your_clevel75_file.h:
#ifdef CLEVEL75
{your parameters}
#endif
your_clevel60_file.h:
#ifdef CLEVEL60
{your parameters}
#endif
...等等...
或者尝试这样的事情:
level.c
#define CLEVEL 75 // CLEVEL may be in set {45 60 75}
#if (CLEVEL==45}
/*
parameter for level 45 ...
*/
#elseif (CLEVEL==60}
/*
parameter for level 60 ...
*/
#elseif (CLEVEL==75)
/*
parameter for level 75 ...
*/
#endif
这样你就没有任何未使用的头文件了,
我有一个 c 程序,它使用在单独的 .c 文件中定义的查找 table。
c 程序实际上 运行 在 PIC24H 上,使用 MPLAB XC16 编译器编译。这不是特别相关,只是它为我正在尝试做的事情提供了动力。
我想要几个查找 table,每个都在它们自己的 .c 文件中。然后我想使用预处理器来定义将哪个 table 加载到程序代码中。
我不确定同一个 .c 文件中未使用的 table 是否会占用程序 space,或者编译器是否会忽略它们。
如果所有table都存储在程序代码中,这将占用宝贵的程序内存。
我主要是在寻找有关实施选择性查找机制的建议。我正在考虑以下内容,但不确定实际效果如何。
#define CLEVEL 75 // CLEVEL may be in set {45 60 75}
#if (CLEVEL==45}
#include "clevel45.h"
#elseif (CLEVEL==60}
#include "clevel60.h"
#elseif (CLEVEL==75)
#include "clevel75.h"
#endif
我不会混合将来不存在的文件,创建无用的依赖项。另一种方式:
your_cfg_file.h:
#define CLEVEL75
your_clevel75_file.h:
#ifdef CLEVEL75
{your parameters}
#endif
your_clevel60_file.h:
#ifdef CLEVEL60
{your parameters}
#endif
...等等...
或者尝试这样的事情:
level.c
#define CLEVEL 75 // CLEVEL may be in set {45 60 75}
#if (CLEVEL==45}
/*
parameter for level 45 ...
*/
#elseif (CLEVEL==60}
/*
parameter for level 60 ...
*/
#elseif (CLEVEL==75)
/*
parameter for level 75 ...
*/
#endif
这样你就没有任何未使用的头文件了,