gcc函数属性在函数项上执行某些操作&;出口

gcc函数属性在函数项上执行某些操作&;出口,gcc,clang,llvm-clang,Gcc,Clang,Llvm Clang,现在有很多gcc属性可以分配给变量/函数。我已经浏览了gcc文档,但还没有找到我要找的内容——或者可能是我错过了。这就是问题所在 我所寻找的是使用gcc时的某种机制,即当函数“f”进入时调用函数“X”,当函数“f”退出时调用函数“Y”。基本上,我目前有很多代码可以执行以下操作,我想知道是否可以通过某种属性“自动”完成锁定/解锁 f() { LOCK_RESOURCE(); UNLOCK_RESOURCE(); } 您正在寻找: 当变量超出范围时,“清理”属性将运行一个函数。此属性只能应用

现在有很多gcc属性可以分配给变量/函数。我已经浏览了gcc文档,但还没有找到我要找的内容——或者可能是我错过了。这就是问题所在

我所寻找的是使用gcc时的某种机制,即当函数“f”进入时调用函数“X”,当函数“f”退出时调用函数“Y”。基本上,我目前有很多代码可以执行以下操作,我想知道是否可以通过某种属性“自动”完成锁定/解锁

f() {

LOCK_RESOURCE();

UNLOCK_RESOURCE();

}
您正在寻找:

当变量超出范围时,“清理”属性将运行一个函数。此属性只能应用于自动函数范围变量;它可能不适用于具有静态存储持续时间的参数或变量。函数必须采用一个参数,即指向与变量兼容的类型的指针。忽略函数的返回值(如果有)


可以在C++模式下编译该文件并使用Stult构造函数/析构函数。