专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VxWorks

C语言语法唔有关问题

发布时间:2010-06-14 16:50:36 文章来源:www.iduyao.cn 采编人员:星星草
C语言语法唔问题
/* Externs for the required functions */
#define BCM_DLIST_ENTRY(_dtype) \
extern int bcm_##_dtype##_mirror_to_set( \
  int unit, bcm_port_t port);
#include <bcm_int/bcm_dlist.h>

/* Dispatch table for this function, which uses the externs above */
#define BCM_DLIST_ENTRY(_dtype)\
bcm_##_dtype##_mirror_to_set, //问1
static int (*_mirror_to_set_dispatch[])(  
  int unit, 
  bcm_port_t port) =
{
#include <bcm_int/bcm_dlist.h>
0
};





来自broadcom交换芯片SDK
问1:(从语法角度来说)这里逗号有什么用?可以表示下一行的内容仍属于#define 范围吗?

问2:(从功能上说)赋值0是表示数组为空吗?一般这样左有什么好处?

问3:前后重复#define同一个宏,宏是否会被覆盖?这样重复定义同一个宏有什么好处?


------解决方案--------------------
逗号不能表示下一行的内容仍属于#define 范围,就是宏定义里含逗号而已,比如
#define MYDATA 30,
在使用此宏时,比如做函数参数时就不用写逗号了 my_func(MYDATA buff);

赋值0是把数组元素填成0,不是数组空,一是初始化数据,二是使用时遇到0容易判断有效数据结束了

应该是在#include <bcm_int/bcm_dlist.h>中对宏定义发生了更改
比如#undefined BCM_DLIST_ENTRY(_dtype)等等
或者你考的程序不全有编译控制选项来控制它们
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: