Redian新闻
>
ipad mini cellular at&t t mobile verizon三家的都是通用的么?
avatar
ipad mini cellular at&t t mobile verizon三家的都是通用的么?# Apple - 家有苹果
t*j
1
[9.4] 内联函数如何在安全和速度上取得折衷?
在 C 中,你可以通过在结构中设置一个 void* 来得到“封装的结构”,在这种情况下
,指向实际数据的 void* 指针对于结构的用户来说是未知的。因此结构的用户不知
道如何解释void*指针所指内容,但是存取函数可以将 void* 转换成适当的隐含类
型。这样给出了封装的一种形式。
不幸的是这样做丧失了类型安全,并且即使仅仅是访问结构体中的一个很不重要的字段
也必须进行函数调用。(如果你允许直接存取结构的域,那么任何人都能直接存取该结
构体了,因为他们必须了解如何解释 void* 指针所指内容;这样将使改变底层数据结
构变的困难)。
~~~~~~~~~~~~~~~~~~~~这上面讲的我似懂非懂....哪位能帮我讲
讲清楚些。c里为啥要用void*啊?丧失类型安全这个我是明白的。
avatar
x*a
2
最近发现2岁男宝宝的肚子上(肚脐以下的地方)长了十来个绿豆大小的白色的小点. 摸
上去有一点点突起. 有点象脂肪粒, 但是比脂肪粒大,而且里面看不到白头.感觉好像自
己消不掉. 有没有哪位妈妈见过宝宝长类似的东西? 预约了皮肤科医生,要等1一个多月
. 担心中...
avatar
W*o
3
随便买一个就能三网通用么?还是要unlock?或者根本不通用?
avatar
M*5
4
c里为啥要用void*啊?
因为在c里面,void*可以转换成任何类型的指针
avatar
r*s
5
using "void*" in C is the only way to get polymorphism.
你看看有些function, 比如 qsort(void *arr, int..)就理解了
avatar
a*n
6
void * malloc ( size_t size );
avatar
t*j
7
明白了,谢谢啊!
avatar
c*l
8
不幸的是这样做丧失了类型安全,并且即使仅仅是访问结构体中的一个很不重要的字段
也必须进行函数调用。(
what does it mean? what if it is not void*?
如果你允许直接存取结构的域,那么任何人都能直接存取该结
构体了,因为他们必须了解如何解释 void* 指针所指内容;这样将使改变底层数据结
构变的困难)。
这样将使改变底层数据结 构变的困难=> why?
thanks

【在 t*****j 的大作中提到】
: [9.4] 内联函数如何在安全和速度上取得折衷?
: 在 C 中,你可以通过在结构中设置一个 void* 来得到“封装的结构”,在这种情况下
: ,指向实际数据的 void* 指针对于结构的用户来说是未知的。因此结构的用户不知
: 道如何解释void*指针所指内容,但是存取函数可以将 void* 转换成适当的隐含类
: 型。这样给出了封装的一种形式。
: 不幸的是这样做丧失了类型安全,并且即使仅仅是访问结构体中的一个很不重要的字段
: 也必须进行函数调用。(如果你允许直接存取结构的域,那么任何人都能直接存取该结
: 构体了,因为他们必须了解如何解释 void* 指针所指内容;这样将使改变底层数据结
: 构变的困难)。
: ~~~~~~~~~~~~~~~~~~~~这上面讲的我似懂非懂....哪位能帮我讲

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。