相当于gcc/g++中的__declspec(naked)

Equivalent of __declspec( naked ) in gcc/g++

本文关键字:declspec naked 中的 gcc g++ 相当于      更新时间:2023-10-16

gcc/g++中的__declspec( naked )等价于什么?__declspec( naked )实际上是用来声明一个函数,没有任何尾声和序言。

在某些架构上,gcc支持一个名为"naked"的属性;我在最新的gcc文档中列出了这些架构:ARM, AVR, MCORE, RX和SPU。

如果您正在使用这些体系结构之一(如果您尝试使用它并且不支持它,gcc会给您警告),该属性可以这样使用:

__attribute__ ((naked)) int fun ()
{
}

[最近在gcc开发者列表中有一些关于添加"naked"属性作为更通用的特性的讨论,并试图在更多的体系结构上支持它,但显然这对你没有帮助:)。]

我相信Linux下的最新GCC没有这样的等效。编译器会在适当的时候发出序言和尾声,您应该让它来决定。它可能非常擅长使序言或尾声非常小,甚至有时不存在。

可以用汇编语言编写函数。或者你可以把asm语句放在你的函数中。

你没有告诉我你为什么要那样做。你的目标是什么?为什么要问这个问题?