我们知道,汇编文件(.S)会在汇编之前进行预处理,但我发现在预处理之后,生成的汇编文件中可能会有结构/函数原型,gnu如何处理这些原型?刚忽略了吗?
例如,以下命令:
gcc -E -o tmp.result arch/x86/boot/copy.S -Iinclude/-Iarch/x86/include /
生成的程序集文件(tmp.result)是:
# 1 "arch/x86/boot/copy.S"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "arch/x86/boot/copy.S"
# 11 "arch/x86/boot/copy.S"
# 1 "include/linux/linkage.h" 1
# 1 "include/linux/compiler.h" 1
# 5 "include/linux/linkage.h" 2
# 1 "include/linux/stringify.h" 1
# 6 "include/linux/linkage.h" 2
# 1 "include/linux/export.h" 1
# 26 "include/linux/export.h"
struct kernel_symbol
{
unsigned long value;
const char *name;
};
# 7 "include/linux/linkage.h" 2
# 1 "arch/x86/include/asm/linkage.h" 1
# 8 "include/linux/linkage.h" 2
# 12 "arch/x86/boot/copy.S" 2
.code16
.text …Run Code Online (Sandbox Code Playgroud)