4 Digit 7 Segment Serial LED Module - TM74HC595

    unsigned char LED_0F[] =
    {// 0	1	  2	   3	4	5	  6	   7	8	9	  A	   b	C    d	  E    F    -
    	0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf
    };

Each byte is a segment list. The high bit is set for all of them, that controls the decimal point. 0xC0 is 0b11000000. The segments are ordered from the bottom up ABCDEFG, bit 01234567, bit 8 is the decimal point as I mentioned. A zero bit illuminates the digit. So 0xC0 represents digit zero, because the decimal point is extinguished and all segments are on except for bit 7, segment G, which is the middle segment. Compare with the digit 8, which is of course 0x80 since all the segments are turned on.

I don't like the code.

  led_table = LED_0F + LED[0];
  i = *led_table;
  LED_OUT(i);

could be simply

  LED_OUT( LED_0F[ LED[0] ] );

unless I am confused (however that may have been the purpose).
Also this function:

    void LED4_Display (void)
    {
    	unsigned char *led_table;          // 查表指针
    	unsigned char i;
    	//显示第1位 - Digit 1
    	led_table = LED_0F + LED[0];
    	i = *led_table;
    	LED_OUT(i);			
    	LED_OUT(0x01);		
        digitalWrite(RCLK,LOW);
        digitalWrite(RCLK,HIGH);
    	//显示第2位 - Digit 2
    	led_table = LED_0F + LED[1];
    	i = *led_table;
    	LED_OUT(i);		
    	LED_OUT(0x02);		
        digitalWrite(RCLK,LOW);
        digitalWrite(RCLK,HIGH);
    	//显示第3位 - Digit 3
    	led_table = LED_0F + LED[2];
    	i = *led_table;
    	LED_OUT(i);			
    	LED_OUT(0x04);	
        digitalWrite(RCLK,LOW);
        digitalWrite(RCLK,HIGH);
    	//显示第4位 - Digit 4
    	led_table = LED_0F + LED[3];
    	i = *led_table;
    	LED_OUT(i);			
    	LED_OUT(0x08);		
        digitalWrite(RCLK,LOW);
        digitalWrite(RCLK,HIGH);
    }

can be rewritten as:

void LED4_Display (void)
{
  byte digit = 0;
  for (byte dselect = 1; dselect < 0x10; dselect = dselect << 1)
  {
    LED_OUT(LED_0F[LED[digit]]);
    LED_OUT(dselect);
    digitalWrite(RCLK, LOW);
    digitalWrite(RCLK, HIGH);
    ++digit;
  }
}

However I have no hardware to test.