Код между %{
и %}
дословно вставляется в сгенерированную оболочку SWIG и используется, чтобы предоставить коду оболочки доступ к перечисленным заголовкам или объявлениям.
Код вне этих маркеров указываетSWIG, чтобы создать оболочку для каждого из перечисленных объявлений (или целых заголовочных файлов).
Если вы пропустили extern int fact(int n);
в первой части, оболочка будет скомпилирована и связана с источником или библиотекой, содержащейФункция не сможет получить доступ к функции, так как объявление extern будет отсутствовать.Если исключить из второй части, оболочка не будет сгенерирована для доступа к ней из языка сценариев.
Существует ярлык:
%inline %{
...
%}
, который инструктирует SWIG как вставлять, так изаверните декларации.