4964|5

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ccs中c语言的几个问题,希望dx不吝赐教,先3q了!!! [复制链接]

struct  SCIFFRX_BITS {     // bits   description
   Uint16 RXFFIL:5;          // 4:0    Interrupt level
   Uint16 RXFFIENA:1;        // 5      Interrupt enable
   Uint16 RXFFINTCLR:1;      // 6      Clear INT flag
   Uint16 RXFFINT:1;         // 7      INT flag
   Uint16 RXFIFST:5;         // 12:8   FIFO status
   Uint16 RXFIFORESET:1;     // 13     FIFO reset
   Uint16 RXOVF_CLR:1;       // 14     Clear overflow
   Uint16 RXFFOVF:1;         // 15     FIFO overflow

};

union SCIFFRX_REG {
   Uint16                 all;
   struct SCIFFRX_BITS  bit;
};
用SCIFFRX_REG.all就可以把SCIFFRX_BITS里的所有位都引用吗???
在c语言里有这样的介绍吗?????
2.Uint32 *Dest = (void *) &PieVectTable;        其中的void *是什么意思?
3, cp[x]= (char * ) malloc (10000,1)
    if (cp[x]= = (char * ) NULL)
          break
这两个语句分别是什么意思 ??不懂malloc, calloc以函数及NULL到底是不是就是0啊

最新回复

引用:写道: 2. void * 表示指向空类型的指针,不知道为什么这句话不写成:Uint32 *Dest = (Uint32 *) &PieVectTable; ----------------------------这样定义就出问题了 不知道这样定义出了什么问题?  详情 回复 发表于 2007-11-2 04:00
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
同问
个人感觉是说DEST 和PieVectTable 两个变量指针是互动赋值
亦即操作一个另一个也操作了
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用:
写道:
struct  SCIFFRX_BITS {     // bits   description
   Uint16 RXFFIL:5;          // 4:0    Interrupt level
   Uint16 RXFFIENA:1;        // 5      Interrupt enable
   Uint16 RXFFINTCLR:1;      // 6      Clear INT flag
   Uint16 RXFFINT:1;         // 7      INT flag
   Uint16 RXFIFST:5;         // 12:8   FIFO status
   Uint16 RXFIFORESET:1;     // 13     FIFO reset
   Uint16 RXOVF_CLR:1;       // 14     Clear overflow
   Uint16 RXFFOVF:1;         // 15     FIFO overflow

};

union SCIFFRX_REG {
   Uint16                 all;
   struct SCIFFRX_BITS  bit;
};
用SCIFFRX_REG.all就可以把SCIFFRX_BITS里的所有位都引用吗???
在c语言里有这样的介绍吗?????
2.Uint32 *Dest = (void *) &PieVectTable;        其中的void *是什么意思?
3, cp[x]= (char * ) malloc (10000,1)
    if (cp[x]= = (char * ) NULL)
          break
这两个语句分别是什么意思 ??不懂malloc, calloc以函数及NULL到底是不是就是0啊
1. 这个看C语言的union的介绍就应该明白了。 union的每个成员共享同样的内存,也就是把同一个内存的内容用各种形式来表达。

2. void * 表示指向空类型的指针,不知道为什么这句话不写成:Uint32 *Dest = (Uint32 *) &PieVectTable;       

3. malloc和calloc都是动态分配内存的函数,google一下应该不难找到介绍。NULL就是0,一个指针如果指向的地址是0的话,那么这个指针就是空指针。
你可以在stdio.h之类的头文件中找到类似下面的定义:
#ifndef NULL
#ifdef  __cplusplus
#define NULL    0
#else
#define NULL    ((void *)0)
#endif
#endif
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
用SCIFFRX_REG.all就可以把SCIFFRX_BITS里的所有位都引用吗???
在c语言里有这样的介绍吗?????-----------------所有位都可以引用,也可以引用局部位。这在C语言里的共用体和结构体那快,还得好好研究啊,我是头都搞昏了的研究了几天。

2.Uint32 *Dest = (void *) &PieVectTable;        其中的void *是什么意思?
----这是指针部分的知识。PieVectTable是一个名字,同时也代表一个首地址,跟C里的数组名代表数组首地址是一样的。这句话的概念是定义了一个32位的无符号类型的指针变量Dest,Dest指向PieVectTable首地址。因为PieVectTable是一个指针数组。想要学好,请仔细精读C里的指针部分知识
3, cp[x]= (char * ) malloc (10000,1)
    if (cp[x]= = (char * ) NULL)
          break
这两个语句分别是什么意思 ??不懂malloc, calloc以函数及NULL到底是不是就是0啊
------------malloc (10000,1)是一个宏替换函数,它返回的值要看你具体定义的这个宏是什么。然后这句话就好理解了。请精读C的宏函数替换部分。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用:
写道:
1. 这个看C语言的union的介绍就应该明白了。 union的每个成员共享同样的内存,也就是把同一个内存的内容用各种形式来表达。

2. void * 表示指向空类型的指针,不知道为什么这句话不写成:Uint32 *Dest = (Uint32 *) &PieVectTable;       

3. malloc和calloc都是动态分配内存的函数,google一下应该不难找到介绍。NULL就是0,一个指针如果指向的地址是0的话,那么这个指针就是空指针。
你可以在stdio.h之类的头文件中找到类似下面的定义:
#ifndef NULL
#ifdef  __cplusplus
#define NULL    0
#else
#define NULL    ((void *)0)
#endif
#endif
2. void * 表示指向空类型的指针,不知道为什么这句话不写成:Uint32 *Dest = (Uint32 *) &PieVectTable; ----------------------------这样定义就出问题了
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用:
写道:
2. void * 表示指向空类型的指针,不知道为什么这句话不写成:Uint32 *Dest = (Uint32 *) &PieVectTable; ----------------------------这样定义就出问题了
不知道这样定义出了什么问题?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表