|
Look-up Table Bitshift Implementation for Real Time Embedded Systems (tm)
Date: 10/30/06
(Code WTF) Keywords: no keywords
На очереди - сложение и умножение. Особого внимания заслуживает документация. Копирайт инфринджится со страшной силой, но судебного иска я не боюсь, тем более что речь наверняка идет о Well-Known Best Practice (r).
/*************************
* File Scope Variables
*************************/
/* Static Strings to Match the Data */
static unsigned32_T MB_TID_MASK [32] =
{
0x00000001, /* BIT 0 */
0x00000002, /* BIT 1 */
0x00000004, /* BIT 2 */
0x00000008, /* BIT 3 */
0x00000010, /* BIT 4 */
0x00000020, /* BIT 5 */
0x00000040, /* BIT 6 */
0x00000080, /* BIT 7 */
0x00000100, /* BIT 8 */
0x00000200, /* BIT 9 */
0x00000400, /* BIT 10 */
0x00000800, /* BIT 11 */
0x00001000, /* BIT 12 */
0x00002000, /* BIT 13 */
0x00004000, /* BIT 14 */
0x00008000, /* BIT 15 */
0x00010000, /* BIT 16 */
0x00020000, /* BIT 17 */
0x00040000, /* BIT 18 */
0x00080000, /* BIT 19 */
0x00100000, /* BIT 20 */
0x00200000, /* BIT 21 */
0x00400000, /* BIT 22 */
0x00800000, /* BIT 23 */
0x01000000, /* BIT 24 */
0x02000000, /* BIT 25 */
0x04000000, /* BIT 26 */
0x08000000, /* BIT 27 */
0x10000000, /* BIT 28 */
0x20000000, /* BIT 29 */
0x40000000, /* BIT 30 */
0x80000000 /* BIT 31 */
};
|
Особенно важен здесь static: каждому модулю - своя таблица. Strive to avoid dependencies between modules (tm) (r). Каждый - сам за себя, например:
static unsigned8_T mask[] = {1, 1<<1, 1<<2, 1<<3, 1<<4, 1<<5, 1<<6, 1<<7};
|
Source: http://community.livejournal.com/code_wtf/57231.html
|