请问,内核中结构体变量为什么可以这样写 struct task_struct *p; *p = *current;
时间:2008-07-23
来源:互联网
int do_fork(unsigned long clone_flags, unsigned long stack_start,
struct pt_regs *regs, unsigned long stack_size)
{
int retval = -ENOMEM;
struct task_struct *p;
DECLARE_MUTEX_LOCKED(sem);
if (clone_flags & CLONE_PID) {
/* This is only allowed from the boot up thread */
if (current->pid)
return -EPERM;
}
current->vfork_sem = &sem;
p = alloc_task_struct();
if (!p)
goto fork_out;
*p = *current;
作者: xiachongbaogc 发布时间: 2008-07-23
作者: gradetwo 发布时间: 2008-07-23
作者: xiachongbaogc 发布时间: 2008-07-24
struct T { int x, y; }; struct T a, b; a = b;
再考虑一个问题
struct T { int x, y; }; void fn1(struct T a) { printf("%d\n", a.x); } void fn2(struct T * p) { printf("%d\n", p->x); }
最后再想一想, 下面的例子中, fn1 和 fn2 是否能够达到预期的效果, 为什么?
struct T { int x, y; }; void fn1(struct T a) { a.x = 0; } void fn2(struct T * p) { p->x = 0; }
作者: remote fish 发布时间: 2008-07-24
在此谢谢 两位。
作者: xiachongbaogc 发布时间: 2008-07-24
C++会为每一个类自动生成=
==是没有的
作者: hanchao3c 发布时间: 2008-08-12
void fn1(struct T a)
{
a.x = 0;
}
这个不仅仅是性能的问题,这种做法是错的,因为a在fn1的栈上(复制的),不可能传出去。
在c++中用得是拷贝构造
作者: hanchao3c 发布时间: 2008-08-12
作者: iamljj 发布时间: 2009-03-01
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28