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

小ハマりしたのでメモ。

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

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

つまり、こういうこと。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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