C语言数组带下标赋值

好记性不如烂笔头。
c语言数组带下标赋值,初始化的时候数组元素的值不受顺序影响,在有些时候方便扩展一幕了然。

int array[3] = { 1, 2, 3 };
/* 等同于 */
int array[3] = {
	[0] = 1,
	[1] = 2,
	[2] = 3,
};
int array[3] = {
	[2] = 1,
	[1] = 2,
	[0] = 3,
};

举例:在之前工程中按键程序中使用过,增加删除特别方便。按键驱动

typedef void (*const KEY_TASK_CB)(void);
/* 函数指针声明为常量初始化之后不允许改变 */
const KEY_TASK_CB key_task[TASK_SIZE] = {
	[KEY0_SHORT] = task_key0_short,
	[KEY0_LONG] = task_key0_long, 
	[KEY0_HOLD] = task_key0_hold, 
	[KEY0_HOLD_UP] = task_key0_hold_up,

	[KEY1_SHORT] = task_key1_short,
	[KEY1_LONG] = task_key1_long,
	[KEY1_HOLD] = task_key1_hold, 
	[KEY1_HOLD_UP] = task_key1_hold_up, 
};

版权声明:本文为lala0903原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。