gpt4 book ai didi

c - 这段代码中的 ":"是什么意思?

转载 作者:行者123 更新时间:2023-12-04 09:33:14 24 4
gpt4 key购买 nike

struct file_operations memory_fops = {
read: memory_read,
write: memory_write,
open: memory_open,
release: memory_release
};

这段代码中的“:”是什么意思?谢谢。这是来自 linux 驱动程序代码。更完整的代码在这里:

/* Necessary includes for device drivers */
#include <linux/init.h>
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h> /* printk() */
#include <linux/slab.h> /* kmalloc() */
#include <linux/fs.h> /* everything... */
#include <linux/errno.h> /* error codes */
#include <linux/types.h> /* size_t */
#include <linux/proc_fs.h>
#include <linux/fcntl.h> /* O_ACCMODE */
#include <asm/system.h> /* cli(), *_flags */
#include <asm/uaccess.h> /* copy_from/to_user */

MODULE_LICENSE("Dual BSD/GPL");

/* Declaration of memory.c functions */
int memory_open(struct inode *inode, struct file *filp);
int memory_release(struct inode *inode, struct file *filp);
ssize_t memory_read(struct file *filp, char *buf, size_t count, loff_t *f_pos);
ssize_t memory_write(struct file *filp, char *buf, size_t count, loff_t *f_pos);
void memory_exit(void);
int memory_init(void);

/* Structure that declares the usual file */
/* access functions */
struct file_operations memory_fops = {
read: memory_read,
write: memory_write,
open: memory_open,
release: memory_release
};

/* Declaration of the init and exit functions */
module_init(memory_init);
module_exit(memory_exit);

/* Global variables of the driver */
/* Major number */
int memory_major = 60;
/* Buffer to store data */
char *memory_buffer;

最佳答案

这是一个 Gnu C 扩展。基本上它允许以任何顺序在初始化程序中指定元素。

http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

UPD:执行相同操作的标准 (C99) 方法是 { .field = value, .field2 = value2 }

关于c - 这段代码中的 ":"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com