Ale*_*anu 2 c assembly c-preprocessor
我想基于头文件中的定义执行一些汇编指令.
比方说,在test.h我有#define DEBUG.
在test.asm我想以某种方式查询喜欢#ifdef DEBUG做些什么?
这样的事可能吗?我无法在类似的问题或网上找到有用的东西.
C 预处理器只是一个输入数据(C 源文件)、转换数据并再次输出数据(翻译单元)的程序。
您可以像这样手动运行它:
gcc -E < input > output
Run Code Online (Sandbox Code Playgroud)
这意味着您可以根据需要在 .txt 文件或 Latex 文件上运行 C 预处理器。
当然,困难的一点是如何将其集成到构建系统中。这很大程度上取决于您使用的构建系统。如果涉及 makefile,则为汇编程序文件创建一个目标:
assembler_file: input_1 input_2
gcc -E < $^ > $@
Run Code Online (Sandbox Code Playgroud)
然后以通常编译它的方式编译“assembler_file”。
是的,您可以在asm文件上运行C预处理器.取决于您的构建环境如何执行此操作.gcc例如,为具有扩展名.S(大写)的文件自动运行它.请注意,无论您包含什么,都应该兼容asm.通常的做法是有条件地包含标题的一部分,使用#ifndef ASSEMBLY或类似的结构,因此您可以在同一标题中包含C和ASM部分.
| 归档时间: |
|
| 查看次数: |
3277 次 |
| 最近记录: |