读书人

提问:有没有可能用变量控制宏定义?该

发布时间: 2013-10-21 17:02:52 作者: rapoo

提问:有没有可能用变量控制宏定义?
如果在程序初始化的时候先从文件中读取变量值 m_val.若为1则有如下宏定义:
#define DATA_TYPE float

若为0则有如下宏定义:
#define DATA_TYPE int

因程序编译时需要用到DATA_TYPE这一宏定义,有没有一种方法可以控制DATA_TYPE的值?
这个宏定义是在所需的程序代码运行之前进行修改
[解决办法]
好像不可以,宏定义的替换发生在预编译阶段,而你要求的发生在运行阶段。
想其他方法吧
[解决办法]
LS说的是对的.
宏定义控制宏定义.
或者你说下你的需求, 看是否有其他解决方法.
[解决办法]
是可以的,而且这是一种常见的开发模式。但是楼主需要一个编译控制工具,比如automake或者cmake。
方法是这样的:你提供一个待处理的头文件(不妨叫XXX_config.h.in),塞给编译控制工具。用户在使用工具的时候,可以设定一些变量。编译控制工具可以做到:依据这些变量的值,替换待处理的头文件的值,给出一个处理后的头文件(不妨叫XXX_config.h)。然后使用这个头文件做实际的编译。

读书人网 >C语言

热点推荐