指针问题 待高手

movie0125 2011-07-29 04:59:50
1. 想将 -1 赋值给一个指针
如:
dynamic_buff_node_t* a = (dynamic_buff_node_t*)-1;
警告:warning: assignment from incompatible pointer type

2. 对void*类型的指针做运算
如:
void* p_elements; i_count = 5;
for (; i_count--; p_elements += 5){……}
警告:warning: pointer of type 'void *' used in arithmetic

3. 结构体中包含结构体,但是初始化有警告
如:
typedef struct a {int a;} A;
typedef struct b {struct ba; int b;} B;
typedef struct c {struct cba; int c;} C;
C test = {0};
警告:warning: missing braces around initializer
warning: (near initialization for 'cba.ba')

高手速速现身!
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
movie0125 2011-07-29
  • 打赏
  • 举报
回复
我用的linux的环境,定义宏的时候报错了#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
external/vgx/libchain/src/buffchain.c:47: error: 'HANDLE' undeclared (first use in this function)
external/vgx/libchain/src/buffchain.c:47: error: (Each undeclared identifier is reported only once
external/vgx/libchain/src/buffchain.c:47: error: for each function it appears in.)
external/vgx/libchain/src/buffchain.c:47: error: 'LONG_PTR' undeclared (first use in this function)
movie0125 2011-07-29
  • 打赏
  • 举报
回复
我试试
ouyh12345 2011-07-29
  • 打赏
  • 举报
回复
1、
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
ouyh12345 2011-07-29
  • 打赏
  • 举报
回复
2、void *不宜做加法操作,因为不知道加1后指针走多少,转换成具体的类型后,再做加法操作
3、C test;
memset(&test, 0, sizeof(C));
movie0125 2011-07-29
  • 打赏
  • 举报
回复
现在就是想去掉警告,这些是我提取出来的模型,软件还是有点大的。不去掉警告怕有影响,特别是指针的警告
c_losed 2011-07-29
  • 打赏
  • 举报
回复
如果不影响运行和结果 警告可以无视

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧