GNU 汇编打印格式化错误消息 - 宏替换为 .print 的带引号字符串

问题描述 投票:0回答:1

我有这样的设置:

.set ERRORS, 1
.macro ERROR_SUMMARY, COUNT
    .print "\e[1;92mZ#\e[1;31m Compilation Failed with \\COUNT Error(s)\e[0m!"
.endm

ERROR_SUMMARY ERRORS

这应该打印:

Compilation Failed with 1 Error(s)

但是,它不会打印

Compilation Failed with 1 Error(s)
,而是打印
Compilation Failed with ERRORS Error(s)

assembly gnu-assembler precompiled-headers
1个回答
0
投票

您可以在

.altmacro
模式和辅助宏中完成此操作:

.altmacro
.set ERRORS, 1
.macro ERROR_PRINT, COUNT
    .print "\e[1;92mZ#\e[1;31m Compilation Failed with \COUNT Error(s)\e[0m!"
.endm
.macro ERROR_SUMMARY, COUNT
    ERROR_PRINT %\COUNT
.endm

ERROR_SUMMARY ERRORS

(注意

.print
中的单反斜杠)

当然,如果您愿意将

%
作为
ERROR_SUMMARY %ERRORS
添加到调用中,那么您不需要帮助程序。

© www.soinside.com 2019 - 2024. All rights reserved.