SWIG是什么

  SWIG是什么?

  SWIG是一种简化脚本语言与C/C++接口的开发工具。简而言之,SWIG是一个通过包装和编译
  C语言程序来达到与脚本语言通讯目的的工具。
  。怎么使用SWIG?
  首先解释C/C++语言编程的优缺点,
  。一个简单的示例:
  -SWIG接口文件
  -swig命令
  -创建Perl5模块
  -创建Python模块
  -快捷方式
  。支持的C/C++特性
  因为C/C++的标准正在进步,因此SWIG也是一个不断发展的过程,在1.3版本中支持的特性包括:
  -完全支持C99预处理
  -所有的ANSI C和C++数据类型
  -支持函数、常量、变量
  -支持类
  -单重或者多重继承
  -函数、方法的重载
  -运算符重载
  -C++模版
  -命名空间
  -变长传入参数
  -C++ 的 smart指针
  。“非侵入式”创建接口
  对原有的C/C++源代码只需要很小的改动,或者根本不用改动。
  。将SWIG合并入安装系统
  当我们对原有的source code进行make或者build时,如何巧妙的将SWIG嵌入其中。
  这是我们要重点考虑的问题。
  。自动产生代码
  SWIG通过的input文件的parse,自动生成output文件(wrapped),完全不需要手工
  干预(事实上,因为产生的output文件十分复杂,大部分人也不会原意手动去修改源文件)
  。SWIG与自由
  我们无意在这里讨论纷乱复杂的政治问题,只是要指出SWIG是根据一种特定的编程“哲学”
  开发出来的。这种哲学的精髓在于假设程序员本人都是很聪明的,而工具只需要安守本分
  就好。
  SWIG试图理解最为复杂的C++语法并将其翻译为一系列简单的接口,而且所有的输出都
  符合ANSI C标准,因而可以依赖任意一款编译器进行编译,这也保证了程序人员免于在
  调试非标准C/C++语言方面付出的多余劳动。
  第5章:SWIG基础
  。运行SWIG
  敲入swig命令,不带任何参数,就可以看到swig的所有参数输出和详细说明。
  输入文件的格式,带.swg或.i后缀名的文件,最常见的格式如下所示:
  %module my_module
  %{
  #i nclude
  %}
  extern double result;
  void output_throught();
  MyClass *my_class;
  输出文件:
  如果没有任何特别参数说明,输出文件包括一个包装source(my_module_wrap.cxx ,一个头文件。
  。对C的声明进行简单包装
  举例说明,用SWIG将C source包装为一个python模块,并输出。
  处理基本类型问题,int/short/long/unsigned/signed/
  全局变量,SWIG可以将全局变量映射为脚本语言的变量。
  常量……
  。指针与复杂对象
  简单的指针,最基本的C数据类型指针。
  空指针NULL,被解释为字符串“NULL”或者是0值。
  。其他实际问题
  带值返回
  。structure和union
  SWIG在处理Structure和Union时,存在的技巧和问题。
  。代码插入
  。建立接口的策略

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值