C函数语法

MK.*_*MK. 7 assembly glibc

在此页面上:http://www.scs.stanford.edu/histar/src/pkg/uclibc/libc/sysdeps/linux/x86_64/sigaction.c

我看到这两行:

extern void restore_rt (void) asm ("__restore_rt") attribute_hidden;
extern void restore (void) asm ("__restore") attribute_hidden;
Run Code Online (Sandbox Code Playgroud)

这是什么语法?它是否设置restore_rt为具有内联作用的函数asm("__restore_rt")

谢谢!

Bud*_*ddy 3

显然这是一种替换 C 函数符号名称的方法......

为了更改函数的名称,您需要原型声明,因为编译器不会接受函数定义中的 asm 关键字:

extern long Calc(void) asm ("CALCULATE");
Run Code Online (Sandbox Code Playgroud)

调用函数 Calc() 将创建汇编指令来调用函数 CALCULATE。

在本文档中搜索“替换 C 函数的符号名称”