痛饮:什么是“内嵌%%{%}”和“{%%}”之间有什么不同?

问题描述 投票:6回答:1

我从文档了解什么是,什么是%{ %}之间插入包装,那%inline %{ %}

是不是一样的吗?如果不是,有什么区别?

也许我们可以找到%inline %{ %}许多OCCURENCES但只有一个%{ %}的occurence?非常感谢!

inline swig
1个回答
10
投票

你可以有任意数量的任何类型的块的出现。该%{ ... }%刚刚插入什么是块由SWIG生成的文件中一字不差。它是用来使生成的文件进行编译,也就是你平时放在那里不管包括和定义,并从而要求以获得所生成的文件进行编译。

OTOH,从文档:

所述%inline指令插入所有下面逐字到接口文件的标题部分的代码。该代码然后由SWIG预处理器和解析器解析两者。

所以%inline %{ ... %}做两件事情,而:它把声明中生成的包装文件,它会导致痛饮生成的包装代码,以使模块功能等,可以从目标语言(的Python,Lua的,等等)被调用。这不是%{ ... }%的情况:在这样的分组码不会被包裹,只获取生成的包装文件逐字倾倒。

不要害怕打开那SWIG生成*_wrap.cpp:把一些易于搜索的代码在这两个类型的模块,并期待在那里他们最终在包装文件,并得到了产生什么额外的代码。

© www.soinside.com 2019 - 2024. All rights reserved.