static 和 visibility hidden 的区别
做 C 的人都知道如果所定义函数只在本文件中用,那么应该声明为 static
但看 Android 看 bionic 的代码bionic/libc/bionic/pthread.c 发现有这样的代码片段
1269 __LIBC_HIDDEN__1270 int pthread_mutex_unlock_impl(pthread_mutex_t *mutex)1271 {1272 int mvalue, mtype, tid, oldv, shared;1273 1274 if (__unlikely(mutex == NULL))1275 return EINVAL;1276 1277 mvalue = mutex->value;1278 mtype = (mvalue & MUTEX_TYPE_MASK);1279 shared = (mvalue & MUTEX_SHARED_MASK);
既然此函数给本文件其他代码用的,为何不直接定义为 static
#define __LIBC_HIDDEN__ \__attribute__ ((visibility ("hidden")))
查资料得知,原来 hidden 功能是让函数在本 share libs 之外不可见, 就是说本库中应该还有其他 文件(Unit)使用到这个函数
search 之,果然发现
pthread_debug.c 451 extern int pthread_mutex_unlock_impl(pthread_mutex_t *mutex);
458 return pthread_mutex_unlock_impl(mutex);
pthread.c 1270 int pthread_mutex_unlock_impl(pthread_mutex_t *mutex) function
static 和 visibility hidden 的区别相关推荐
- [css] 说说display:none和visibility:hidden的区别
[css] 说说display:none和visibility:hidden的区别 display:none dom对象不渲染. visibility:hidden 隐藏但是dom对象渲染. 个人简介 ...
- display:none和visibility:hidden的区别
在使用CSS隐藏一些元素时,我们经常用到 display:none 和 visibility:hidden.两者差别如下: 1. 是否占据空间 display:none,该元素不占据任何空间,在文档渲 ...
- _blank 和 _self的区别以及display:none和visibility:hidden的区别
_blank 和 _self的区别 target=_blank会在当前窗口之外再打开一个新窗口来显示新的页面 target=_self在当前窗口打开新页 面 display:none和visibili ...
- display:none;与visibility:hidden;的区别
display:none;不会占用任何空间 visibility:hidden;会占用隐藏前的空间大小 转载于:https://www.cnblogs.com/yaser/p/4414825.html
- display:none 和 visibility:hidden的区别
display:none; 隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢,就当它从来不存在 visibility:hidden; 隐藏对应的元素,但是在文档布局中仍保留原来的空间
- display:none和visibility:hidden两者的区别
使用css让元素不可见的方法有很多种,裁剪.定位到屏幕外边.透明度变换等都是可以的.但是最常用两种方式就是设置元素样式为display: none或者visibility: hidden.很多公司的面 ...
- css3新增选择器、伪元素、隐藏元素的方法、visibility: hidden与display:none;的区别 、遮罩层效果、 三级菜单制作、选项卡制作——css3知识点总结
目录 css3新增选择器 兄弟选择器 属性选择器 伪类选择器 其他伪类选择器 类元素选择器 直接选择器 否定选择器 伪元素 :after清除浮动 :before和:after 用来写小三角形 首字母 ...
- visibility: hidden与display:none的区别
要想了解visibility: hidden与display:none的区别,我们还是先来看看他们各自的定义及用法. visibility属性 定义: visibility 属性规定元素是否可见 说明 ...
- display:none和visibility:hidden和透明度的区别
**当想实现一个区域或者内容的消失(隐藏)**,我们有多种代码可以实现.但是根据要求和用户体验,应该选择最合适的方法实现.代码中最常用的代码包括:display:none; visibility:hi ...
最新文章
- hive中的绣花模型_hive建模方法
- 乌镇现场·帅初:公有链的未来——链上校验,链下计算
- JAVA设计模式--辛格尔顿
- [ZJOI2007] 时态同步(拓扑序)
- aws ec2 跨帐号共享_AWS共享资源的警告
- 编辑距离(信息学奥赛一本通-T1276)
- 12岁上大学,23岁获博士学位,这位天才科学家正式加盟清华
- Ajax技术原理小结
- Jono Bacon的社区管理指南
- 有感而发谈谈苏轼的一生
- npm start 和 npm run start的关系以及npm run start传递参数
- 计算机主板常见故障检修,主板常见故障检查与维修
- 微信官方:刚刚拆散一桩19万元的姻缘
- 《内功修炼系列》之-递归从入门到入土(收藏版)
- ThinkPHP3.1.3 { Fast Simple OOP PHP Framework } — [ WE CAN DO IT JUST THINK ] 报错解决办法。...
- redis+Python实现小型动态IP池的搭建,仅需90行代码
- 【ACL Findings 2021】Does Robustness Improve Fairness? Approaching Fairness with Word Substitution R
- python传智播客王铭东_传智播客Python学科的王铭东老师讲的怎么样 |
- 正确理解UNICODE UTF-8等编码方式
- 收银怎样挂单和取单_收银机如何取消挂单
热门文章
- 火柴Open Day,你永远不知道你错过了什么!!
- Inconsistency detected Invalid view holder adapter position
- 对有些反编译不成功的apk,请更新最新的apktool.jar、 dex2jar试试
- Android - Activity 生命周期
- 让世界没有陌生的角落共享单车时代的快与慢
- spring MVC interceptor post遇到问题
- 个人vscode插件配置全记录
- 放弃深度学习?我承认是因为线性代数
- Lichee(两) 在sun4i_crane该平台下编译
- PHP Object对象转换为Array数组