- 论坛徽章:
- 0
|
本帖最后由 aomw10 于 2011-07-25 13:18 编辑
- #define COPY_ACTION_DATA(hc, hae) do { \
- strncpy(hc->action_array[i].name, hae->name, strlen(hae->name)); \
- hc->action_array[i].action_id = hae->action_id; \
- hc->action_array[i].addition_data_len = hae->addition_data_len; \
- \
- if( hae->addition_data_len != 0 && hae->data != NULL ) { \
- memcpy(hc->action_array[i].data, hae->data, hae->addition_data_len); \
- } \
- } while(0)
- #define INSERT_ACTION_TO_CONDITION(i, hc, hae) do { \
- for (i = 0; i < HA_MAX_ACTION_IN_CONDITION; i++) { \
- if (hc->action_array[i].action_id == 0) { \
- memset(&hc->action_array[i], 0x00, sizeof(ha_action_entry_t)); \
- COPY_ACTION_DATA(hc, hae);
- break; \
- } \
- } \
- hc->action_count++; \
- } while(0)
复制代码 因为一些逻辑简单的语句块经常被各个地方调用,为了提高可读性,所以写成上面这种宏的形式,排除调试的因素外,请问有什么缺点嘛?
大家有这么用的吗 |
|