Inline::Cで学ぶperlguts(その6)

小ハマりしたのでメモ。

void Foo(void) { # void は戻り値の型としてだけ有効です

引用元:
http://perldoc.jp/docs/modules/Inline-0.43/C/C.pod

つまり、こういうこと。

use v5.14;
use strict;
use warnings;

use Inline C => q{
    SV * foo()
    {
        return newSViv( 123 );
    }

    SV * bar(void) // <- 悪い例
    {
        return newSViv( 456 );
    }
};

say foo();
say bar();

$ perl aaa.pl
123
Undefined subroutine &main::bar called at aaa.pl line 18.

個人的に、引数がない場合はvoidって書きたいんだけど、
書いてしまうと、Inline::Cがその関数定義を理解できなくなるとのこと。

おしまい。

Leave a Comment