简略方法---结构数组所有元素赋相同值

struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned = {
        [0 ... NR_IRQS-1] = {
                .status = IRQ_DISABLED,
                .chip = &no_irq_chip,
                .handle_irq = handle_bad_irq,
                .depth = 1,
                .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock),
#ifdef CONFIG_SMP
                .affinity = CPU_MASK_ALL
#endif
        }
};
读中断源码的时候,看到 [0 ... NR_IRQS-1],表示不理解。

其中的 “...”和printf(char *fmt,...)的是一样的么,不知道编译器是怎么解析的

我以前都没有见过这样的语法

********************************************************************************

gcc的扩展你可以把它看成是
  1.         [0] = {
  2.                 .status = IRQ_DISABLED,
  3.                 .chip = &no_irq_chip,
  4.                 .handle_irq = handle_bad_irq,
  5.                 .depth = 1,
  6.                 .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock),
  7. #ifdef CONFIG_SMP
  8.                 .affinity = CPU_MASK_ALL
  9. #endif
  10.         },
  11.         [1] = {
  12.                 .status = IRQ_DISABLED,
  13.                 ......
  14.         },
  15. ......
  16.         [NR_IRQS-1] = {
  17.                 .status = IRQ_DISABLED,
  18.                 ......
  19.         }

你可能感兴趣的:(GCC,C)