请教 C 语言高手,有见过这样的结构定义吗?

lincolnlin 2003-07-24 09:46:51
我看到一个结构这样定义,不知何解,高手能帮我解释一下吗?
static struct file_operations yaffs_file_operations = {
read: y_file_read,
write: y_file_write,

};

static ssize_t y_file_read(struct file *f, char *buf, size_t n, loff_t *pos);

static ssize_t y_file_write(struct file *f, const char *buf, size_t n, loff_t *pos);
...全文
98 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
warrenchou 2003-07-25
  • 打赏
  • 举报
回复
定义+初始化
jrhjrh 2003-07-25
  • 打赏
  • 举报
回复
嵌套定义
ceran 2003-07-25
  • 打赏
  • 举报
回复
定义+初始化?
Bandry 2003-07-25
  • 打赏
  • 举报
回复
这哪里是结构定义啊,楼主,这是结构变量声明和初始化,怎么搞的?
wushicnn 2003-07-25
  • 打赏
  • 举报
回复
应该是初始化一个结构变量吧。
jackywangsen 2003-07-25
  • 打赏
  • 举报
回复
我刚学C,看不太懂。学习ing...
lincolnlin 2003-07-25
  • 打赏
  • 举报
回复
这是 Linux 中的一段代码,read, write 应该不是 label.

"显示的初始化" 这个概念我比较同意.
chinazcw 2003-07-24
  • 打赏
  • 举报
回复
关注~~
bm1408 2003-07-24
  • 打赏
  • 举报
回复
晕!
maxcai 2003-07-24
  • 打赏
  • 举报
回复
C++的吧
cdocument 2003-07-24
  • 打赏
  • 举报
回复
刚才可能有错:
static struct file_operations yaffs_file_operations =
{
read: y_file_read,
write: y_file_write,
};
根本不是什么构造,其实就是一个显示的初始化,read:y_file_read,write:y_file_write,
可能是linux中的特殊用法,就是将两个函数地址赋给两个成员。
^_^!

cdocument 2003-07-24
  • 打赏
  • 举报
回复
linux中定义的一个东东哈!
cdocument 2003-07-24
  • 打赏
  • 举报
回复
struct file_operations
{
pf read;
pf wirte;
public:
file_operations(read,write);
{
read=read;
write=wirte;
}
};
ssize_t (*read)(struct file *f, char *buf, size_t n, loff_t *pos);
ssize_t (*write)(struct file *f, const char *buf, size_t n, loff_t *pos);

static ssize_t y_file_read(struct file *f, char *buf, size_t n, loff_t *pos);
static ssize_t y_file_write(struct file *f, const char *buf, size_t n, loff_t*pos);

//
static struct file_operations yaffs_file_operations = {
read: y_file_read,
write: y_file_write,

};
定义一个结构实例,调用构造函数,将两个函数指针赋给两个成员。
一家之言,^_^
蝎子i软件 2003-07-24
  • 打赏
  • 举报
回复
另:
file_operatrions里有两个“函数指针”,但可能还有其他成员。
蝎子i软件 2003-07-24
  • 打赏
  • 举报
回复
对snipersu()的补充: //可能多此一举...呵呵
file_operatrions应该是在别的地方定义了吧。
这里只是用它定义一个变量yaffs_file_operations...
tujj99 2003-07-24
  • 打赏
  • 举报
回复
up
zlj617 2003-07-24
  • 打赏
  • 举报
回复
是不是什么os里的结构啊?
snipersu 2003-07-24
  • 打赏
  • 举报
回复
static struct file_operations yaffs_file_operations = {
read: y_file_read,
write: y_file_write,

};
好像是声明且赋值吧!
file_operations 是个结构体(有两个指针),声明了一个yaffs_file_operations的变量且赋了值(一个是y_file_read,另一个是y_file_write)。
其中的read:是标号而已,write:也一样。

//拙见!如有误请告知,谢谢!。
idler 2003-07-24
  • 打赏
  • 举报
回复
长见识了!
snowman_pc 2003-07-24
  • 打赏
  • 举报
回复
学习!
加载更多回复(5)

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧