易截截图软件、单文件、免安装、纯绿色、仅160KB

请问这类Linux下的C语言结构如何迁移到windows下

迁移对象
从Linux迁移到windows
C/C++ code:
typedef struct q931_h {
unsigned char raw[0];
u_int8_t pd; /* Protocol Discriminator */
#if __BYTE_ORDER == __BIG_ENDIAN
u_int8_t x0:4;
u_int8_t crlen:4;
#else
u_int8_t crlen:4;
u_int8_t x0:4;
#endif
u_int8_t contents[0];
u_int8_t crv[3];
} __attribute__ ((packed)) q931_h;


编译器
vs2008

错误
定义错误如下
error C2229: illegal zero-sized array
error C2143:syntax error : missing ')' before '('
error C2091: function returns function
error C2059: syntax error : ')'

使用该结构时的错误如下
error C2143: syntax error : missing ')' before '*'
error C2081: 'q931_h' : name in formal parameter list illegal
error C2143: syntax error : missing '{' before '*'
error C2059: syntax error : 'type'
error C2059: syntax error : ')'

unsigned char raw[0];这个定义在LINUX下能编译通过么?
你可以看看错误提示,说的比较清楚。



引用
unsigned char raw[0];这个定义在LINUX下能编译通过么?
你可以看看错误提示,说的比较清楚。


可以编译通过的,应该是符合Linux下C编程语法的


相关问答:

两个C文件的问题

以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......

c中的转义字符问题

    '\108'作为字符常量对不对?
转义字符'\ddd'表示3位8进制所代表的字符。 但是108不是正确的8进制表示方法,因此应该是错误的。
但是char a='\108'; 为什么编译不出错呢?
\108 没超过 ......

C/S程序在线自动更新问题,谢谢求教!

目前遇到的问题是:
存放在远程服务器端c/s程序一有更新,如何做到客户端立即响应弹出有最新升级的提示窗口。
本来有点思路:采用WCF+windowns服务+定时器的方式也能实现,但是每台客户端机子每隔都去访问一下远程 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号