棋子 · 2019年12月16日

使用armcc 5.06进行令牌粘贴(“ ##”)

我正在移植许多最初为C51编译器编写的代码。该代码广泛使用了“ ##”令牌粘贴功能。说明:http : //www.keil.com/support/man/docs/c51/c51_pp_tokenpastingop.htm

在armcc 5.06中如何使用令牌粘贴(或类似功能)?我将Keil MDK 5.28用于STM32目标设备。

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2019年12月16日

与C51编译器类似,Arm Compiler 5(armcc)中的C / C ++编译器带有C预处理器。我只是使用-E选项预处理了以下Wikipedia页面(请参阅令牌串联)中的一个非常简单的示例:

https://zh.wikipedia.org/wiki...
(请参阅令牌串联。)

armcc -c -E -o test.txt test.c

…这将导致test.txt的正确输出:

line 1“ test.c”

typedef struct g_object_s g_object_t;

可以在armcc 5.06用户指南中找到更多信息:

http://infocenter.arm.com/hel...

Arm的最新编译器Arm Compiler 6(armclang)还支持预处理:

http://infocenter.arm.com/hel...

Arm Compiler 6和Arm Compiler 5都可以在Keil MDK中获得。

如果您还有其他问题,或者无法进行预处理,可以发表一个简单的示例来演示您所看到的内容。如果您还可以让我们知道您正在执行的特定任务,那也将很有趣。

你的回答
关注数
1
收藏数
0
浏览数
1992
极术小姐姐
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息