【发布时间】:2018-10-29 13:23:58
【问题描述】:
所以我正在制作一个 C 程序,它从 static unsigned char[M_SIZE] 数组中获取内存,其中 M_SIZE 是一个宏。我需要做的是能够通过 make 中的命令更改该宏的值,以便有人可以根据传递给 make 的参数使用不同大小的保留内存编译程序。
我的头文件例子是DataStore.h
#ifndef DATA_STORE_H
#define DATA_STORE_H
#define M_SIZE 50000 // Need this to be configurable via make arguments
unsigned char* DataStore_get_buf(void);
unsigned char* DataStore_get_end(void);
void DataStore_inc_ptr(void);
#endif
我的示例 C 文件是 DataStore.c
#include "DataStore.h"
static unsigned char DataStore_BUFFER[M_SIZE];
static unsigned char* DataStore_PTR = DataStore_BUFFER;
unsigned char* DataStore_get_buf(void)
{
return DataStore_BUFFER;
}
unsigned char* DataStore_get_end(void)
{
return DataStore_BUFFER + M_SIZE;
}
void DataStore_inc_ptr(void)
{
DataStore_PTR++;
}
所以基本上,我需要一种方法来更改 M_SIZE,然后再通过一些命令或一些可以传递给 make 的配置来编译程序。
编辑1:
这个问题很独特,因为我需要一种方法,不仅要传入可配置的宏值,还要处理该值未作为命令传入的情况,而是使用默认宏值。
【问题讨论】: