Name
C_constant
Synopsis
C_constantpackage
,subname
,default_type
,types
,indent
,breakout, item ...
Returns a list of C subroutine definitions that return the
value and type of constants when passed the name by the XS
wrapper. item...
gives a list of
constant names. These can be strings, which are taken as a C macro
name, or references to a hash with the following keys:
name
The name of the constant, as seen by the Perl code.
type
The type of the constant (
IV
,NV
, etc.).value
A C expression for the value of the constant, or a list of C expressions if the type is aggregate. Defaults to
name
if not given.macro
The C preprocessor macro to use in the
#ifdef
. Defaults toname
and is primarily used ifvalue
is anenum
. If a reference or an array is passed, then the first element is used in place of the#ifdef
line, and the second element is used in place of the#endif
. This allows preprocessor constructions such as:#if defined (foo) #if !defined (bar) ... #endif #endif
which are used to determine if a constant will be defined.
A
macro
of1
signals that the constant is always defined, so the#if/#endif
test is omitted.default
Default value to use (instead of
croak
ing with “your vendor has not defined . . . ) if the macro isn’t defined. Specifies a reference to an array with type followed by value(s).pre
C code to use before the assignment of the value of the constant. This allows you to use temporary variables to extract a value from part of a
struct
and return this asvalue
. This C code is placed ...
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.