标号元素


 
在标准 C 里,数组或结构变量的初始化值必须以固定的顺序出现,而在 GCC 中,通过指定索引或结
构域名,则允许初始化值以任意顺序出现。
指定数组索引的方法是在初始化值前写“[INDEX] =”
,还可以使用“[FIRST ... LAST] =”的形式指定
一个范围,比如:
 

++++ arch/ia64/kernel/acpi.c
132 int platform_intr_list[ACPI_MAX_PLATFORM_INTERRUPTS] = {
133 [0 ... ACPI_MAX_PLATFORM_INTERRUPTS - 1] = -1
134 };

将数组 platform_intr_list 的任何元素都初始化为-1。
对于结构初始化,比如:
++++ fs/ext2/file.c
42 const struct file_operations ext2_file_operations = {
43 .llseek = generic_file_llseek,
44 .read = do_sync_read,
45 .write = do_sync_write,
46 .aio_read = generic_file_aio_read,
47 .aio_write = generic_file_aio_write,
48 .ioctl = ext2_ioctl,
49 #ifdef CONFIG_COMPAT
50.compat_ioctl= ext2_compat_ioctl,
51 #endif
52 .mmap= generic_file_mmap,
53 .open= generic_file_open,
54 .release = ext2_release_file,
55 .fsync
56 .splice_read = generic_file_splice_read,
57 .splice_write
     = ext2_sync_file,
    = generic_file_splice_write,
58 }
 


将 结 构 ext2_file_operations 的 元 素 llseek 初 始 化 为 generic_file_llseek , 元 素 rea 初 始 化 为
genenric_file_read,依次类推。使用这种形式,当结构体的定义变化导致元素的偏移位置改变时,仍然可
以确保已知元素的正确性。对于未出现在初始化中的元素,其初值为 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值