【问题标题】:gcc function attribute to do something on function entry & exitgcc 函数属性在函数进入和退出时做一些事情
【发布时间】:2015-02-24 13:34:33
【问题描述】:

现在有很多 gcc 属性可以分配给变量/函数。我浏览了 gcc 文档,但没有找到我要找的东西——或者我可能错过了它。因此问题。

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

f() {

LOCK_RESOURCE();

UNLOCK_RESOURCE();

}

【问题讨论】:

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

标签: gcc clang llvm-clang


【解决方案1】:

你正在寻找__attribute__((cleanup)):

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

【讨论】:

    猜你喜欢
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多