当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2016-07-02

    本文导语:  迁移对象 从Linux迁移到windows 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 cr...

迁移对象
从Linux迁移到windows
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 : ')'

|
__attribute__ ((packed)) 是GCC的扩展,其他编译器不支持吧。
这段代码看起来有点奇妙,我顺带问个问题:
0size的数组通常是个占位符,通常用在structure后面有扩展的数据的情况吧?但写在前面是什么意思呢?

|

raw的值就是pd的地址,可以用取值运算符*取值,取地址运算符&得到的仍然是pd的地址。

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

|
原来的代码使用了GCC的扩展特性

最好的办法是将这个结构体的接口和成员不变,然后重写一份。Windows没有大端一说,可以将大端的那部分直接

删除掉

    
 
 

您可能感兴趣的文章:

  • 请问windows 2000怎么访问linux?我要从linux下拷文件到windows下
  • 请问:我在windows的命令行下进入了linux的ftp服务器,我下载的文件在windows的哪个位置呀
  • 安装F8后,WINDOWS 系统没有声音,请问怎么把windows的声音找回来?
  • 请问如何在WINDOWS中访问linux下的文件,并把Windows下的文件复制到linux下的分区中
  • 请问window 可以跟vm linux互ping,但在我window browser却访问不了vm linux 网页
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问如何让windows和redhat9共享一个分区?
  • 请问X windows, gnome, kde这三者有什么区别和连接
  • 大家好!请问怎么在linux下访问windows的分区
  • 请问如何在linux下运行windows游戏?
  • 请问linux和windows 98怎么联网?
  • 请问如何让linux与windows共享网络连接?
  • 请问jsp,java在window和linux下编程有什么不同?
  • 请问 solaris 有没有类似windows的远程桌面(terminal)?
  • 请问能不能在有windows的机器上安装linux
  • 请问邮件服务器在Linux下搭建还是在WINDOWS下搭建好!
  • 请问有没有在Windows环境下使用的Emacs和Vi版本下载?
  • 请问怎么在linux下使用windows终端?
  • 请问:网游服务器是在什么操作系统下运行啊,在有没有以windows的啊,
  • 请问linux与windows共享问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问哪里有ubuntu 9.0版本的中文语言包和KDE的中文语言包下载,我用Google搜索了很多地方都没有!
  • 请问如何在C语言中嵌入的shell脚本中获得C语言程序中定义的某个变量
  • 请问怎么改变默认的语言?
  • 请问大侠学java要有c语言基础吗?
  • 请问如何才能让REDHAT 7.3的省缺语言变成英文。
  • 请问怎样才能看到JavaScript原来的脚本语言?
  • 请问《软件工程java语言实现》一书在那里能下载
  • 请问高级程序员有没有考java语言的?
  • 请问unix终端的光条式菜单程序是用什么语言开发的?谢谢
  • 请问,怎样用C语言连接SQL2000数据库?
  • 请问要开发一种网络电话,要会什么编程语言?
  • C语言是有函数组成 那Java是由什么组成的 ------类 ? 请问
  • 请问在UNIX系统下C语言中的数据类型转换的问题
  • ~~~请问哪里有Linux下的C语言函数参考手册,最好是英文版的~~~
  • 请问那里有c语言的编译器源代码啊?
  • 请问有没有用AT&T汇编语法讲汇编语言的书?
  • 请问怎样用C语言写一个SHELL
  • 请问ubuntu自动更新的语言包放到那个文件夹下
  • 请问学那种语言最有钱途呢?JAVA如何?
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3