【发布时间】:2011-11-29 15:30:03
【问题描述】:
这是我的问题:我使用的是非标准 ANSI C(一种修改后的 ARM r-tems,可使用标准 GCC 编译),我想在 前面添加一个额外的标签维护类型属性并添加一些“东西”的 C 类型。最终结果会是这样的:
REL char *p;
这仍然是一个指向char 的指针,编译器必须这样处理,但现在REL 标签将定义p 也是一个RELiable 指针。
HP int a;
相同,但现在HP 标记将这个int 定义为高性能int。
我必须更改/修改预处理器?如何?
PS:这不是很重要,但是根据我的项目的具体情况,我不能使用简单的#define,因为REL 和HP 标记将附加到直接绑定到预处理器的特殊硬件例程上。 (这是前面提到的“东西”)。
【问题讨论】:
-
您可以使用#define 添加预处理器定义
-
#define REL只会删除REL进行编译。 -
您能指定如何翻译您的标签吗?例如。编译器应该看到什么而不是
REL char* p;? -
是的,编译器会看到所有 REL/HP 变量都将使用附加到预处理器的可靠/高性能硬件例程进行处理(我没有这个例程,因为它们受版权保护)。例如,所有 REL 变量都将从地址 0x00002000(内存的可靠分区)开始存储 例如,所有 HP 变量将从地址 0x00005000(内存的高性能分区)开始存储
-
我不明白您所说的“附加到预处理器的特殊硬件例程”是什么意思。
标签: c gcc c-preprocessor