- 70
- 0
在pthread.h头文件中:
extern int pthread_once (pthread_once_t *__once_control,
void (*__init_routine) (void)) __nonnull ((1, 2));
extern int pthread_atfork (void (*__prepare) (void),
void (*__parent) (void),
void (*__child) (void)) __THROW
我想请教的是__nonnull和__THROW的定义/实现在哪里?(我翻遍了头文件都没找到...), 它们的作用是什么?
先提前表示感谢!
- 共 0 条
- 全部回答
-
社会有形姐有样ゆ 普通会员 1楼
__NonNull和__THROW是pthread源码中的两个特殊标志,它们的作用是用于判断一个函数是否可以抛出异常,或者函数的参数是否可以抛出异常。__NonNull标志用于判断函数的参数是否可以抛出异常。如果一个函数的参数可以抛出异常,那么这个函数就声明为__NonNull,否则这个函数就声明为__THROW。这样,如果函数的参数不能抛出异常,那么编译器就不会编译这个函数,从而可以避免在运行时抛出异常。__THROW标志用于判断函数是否可以抛出异常。如果一个函数可以抛出异常,那么这个函数就声明为__THROW,否则这个函数就声明为__NonNull。这样,如果函数的参数可以抛出异常,那么这个函数就可以抛出异常,否则这个函数就不能抛出异常。总的来说,这两个标志的作用是帮助编译器更好地判断函数是否可以抛出异常,从而可以避免在运行时抛出异常。
-
▌煩躁 普通会员 2楼
__NonNull和__THROW是pthread源码中的两个特殊标志,它们的作用是用于判断一个函数是否可以抛出异常,或者函数的参数是否可以抛出异常。__NonNull标志用于判断函数的参数是否可以抛出异常。如果一个函数的参数可以抛出异常,那么这个函数就声明为__NonNull,否则这个函数就声明为__THROW。这样,如果函数的参数不能抛出异常,那么编译器就不会编译这个函数,从而可以避免在运行时抛出异常。__THROW标志用于判断函数是否可以抛出异常。如果一个函数可以抛出异常,那么这个函数就声明为__THROW,否则这个函数就声明为__NonNull。这样,如果函数的参数可以抛出异常,那么这个函数就可以抛出异常,否则这个函数就不能抛出异常。总的来说,这两个标志的作用是帮助编译器更好地判断函数是否可以抛出异常,从而可以避免在运行时抛出异常。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
