struct sockaddr_in saddrin char *str; if ((saddrin.sin_addr.s_addr = inet_addr(str)) == (unsigned long)-1) { do_some_error_handling; } |
struct sockaddr_in saddrin char *str; if (inet_aton(str, &saddrin.sin_addr) ! = OK) { do_some_error_handling; } |
struct draw_msg { int objectid; int coord[3]; } |
struct draw_msg { int objectid:32; int coord1:32; int coord2:32; int coord3:32; } |
int *iptr, *optr, *limit; int xyz[3]; iptr = draw_msg.coord; limit = draw_msg.coord + sizeof(draw_msg.coord); optr = xyz; while (iptr < limit) *optr++ = *iptr++; |
union parse_hdr { struct hdr { char data1; char data2; int data3; int data4; } hdr; struct tkn { int class; long tag; } tkn; } parse_item; |
char *ptr = msgbuf; parse_item.hdr.data1 = *ptr++; parse_item.hdr.data2 = *ptr++; parse_item.hdr.data3 = (*ptr++ << 8 | *ptr++); parse_item.hdr.data4 = (*ptr++ << 8 | *ptr++); if (parse.tkn.class >= MIN_TOKEN_CLASS && parse.tkn.class <= MAX_TOKEN_CLASS) { interpret_tag(parse.tkn.tag); } |
/*在这台计机上,int是一个字?/ typedef word int; |
#define MIN(A,B) ( A <= B ? A : B ) |
#define MIN(A,B) Q(AQ?lt;= (B) ? (A) : (B) ) |
least = MIN(*p++, b); |
( (*p++) <= (b) ?(*p++):(b) ) |
/* ?+2+3+?+n的?*/ WORD Addition(BYTE n) { register i,s=0; for(i=1;i<=n;i++) { s=s+i; } return s; } |
/* 把两个输入参数的值相加,l果存放到另外一个全局变量?*/ int result; void Add(long a, long *b) { _asm { MOV AX, a MOV BX, b ADD AX, [BX] MOV result, AX } } |
/* Ҏ1 */ int i,j; i = 879 / 16; j = 562 % 32; /* Ҏ2 */ int i,j; i = 879 >> 4; j = 562 - (562 >> 5 << 5); |
#define INT_I2_MASK 0x0040 wTemp = inword(INT_MASK); outword(INT_MASK, wTemp &~INT_I2_MASK); |
#define INT_I2_MASK 0x0040 wTemp = inword(INT_MASK); outword(INT_MASK, wTemp | INT_I2_MASK); |
#define INT_I2_MASK 0x0040 wTemp = inword(INT_MASK); if(wTemp & INT_I2_MASK) { ?/* 该位? */ } |