Warum benutzen XS Subs const char *?

8

Viele Perl-XS-Codes verwenden const char * als Rückgabewert eines XS-Subs, aber niemals nur char * . Zum Beispiel:

%Vor%

Code von xs-fun

Kann jemand erklären, warum const bevorzugt wird? In meinem Test ist der zurückgegebene Skalar modifizierbar, ob const verwendet wird oder nicht.

    
David Farrell 01.06.2016, 23:29
quelle

1 Antwort

8

Es ist nur für die Klarheit. Die Funktion chromaprint_get_version gibt ein const char * zurück, daher sollte das XSUB auch mit dem Rückgabetyp const char * definiert werden. Wenn Sie sich die integrierte typemap ansehen, ist dies nicht der Fall Machen Sie einen Unterschied, ob Sie const char * , char * oder sogar unsigned char * verwenden. Sie alle verwenden die T_PV typemap. In allen Fällen gibt XSUB ein SV zurück, das eine Kopie der C-Zeichenfolge enthält, die immer änderbar ist.

    
nwellnhof 02.06.2016, 00:02
quelle

Tags und Links