Next: External Foreign Variables, Up: Foreign Variables
The
with-alien
macro establishes local foreign variables with the specified alien types and names. This form is analogous to defining a local variable in C: additional storage is allocated, and the initial value is copied. This form is less analogous toLET
-allocated Lisp variables, since the variables can't be captured in closures: they live only for the dynamic extent of the body, and referring to them outside is a gruesome error.The var-definitions argument is a list of variable definitions, each of the form
(name type &optional initial-value)The names of the variables are established as symbol-macros; the bindings have lexical scope, and may be assigned with
setq
orsetf
.The
with-alien
macro also establishes a new scope for named structures and unions. Any type specified for a variable may contain named structure or union types with the slots specified. Within the lexical scope of the binding specifiers and body, a locally defined foreign structure type foo can be referenced by its name using(struct
foo)
.