20010910-1.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 60 行

C
60
字号
/* Test case contributed by Ingo Rohloff <rohloff@in.tum.de>.   Code distilled from Linux kernel.  *//* Compile this program with a gcc-2.95.2 using   "gcc -O2" and run it. The result will be that   rx_ring[1].next == 0   (it should be == 14)   and   ep.skbuff[4] == 5      (it should be 0)*/extern void abort(void);struct epic_rx_desc {  unsigned int next;};struct epic_private {  struct epic_rx_desc *rx_ring;  unsigned int rx_skbuff[5];};static void epic_init_ring(struct epic_private *ep){  int i;  for (i = 0; i < 5; i++)   {    ep->rx_ring[i].next = 10 + (i+1)*2;    ep->rx_skbuff[i] = 0;  }  ep->rx_ring[i-1].next = 10;}static int check_rx_ring[5] = { 12,14,16,18,10 };int main(void){  struct epic_private ep;  struct epic_rx_desc rx_ring[5];  int i;  for (i=0;i<5;i++)  {    rx_ring[i].next=0;    ep.rx_skbuff[i]=5;  }    ep.rx_ring=rx_ring;  epic_init_ring(&ep);    for (i=0;i<5;i++)  {    if ( rx_ring[i].next != check_rx_ring[i] ) abort();    if ( ep.rx_skbuff[i] != 0 ) abort();  }  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?