you can write whatever C code you like;
@item
-you can send messages to Objective-C constant strings (@@"this is a
-constant string");
+you can send messages to Objective-C constant strings (@code{@@"this is a
+constant string"});
@item
you can allocate and send messages to objects whose class is implemented
@multitable @columnfractions .2 .8
@item pointers
-@tab @code{'^'} followed by the pointed type.
+@tab @samp{^} followed by the pointed type.
@item arrays
-@tab @code{'['} followed by the number of elements in the array followed by the type of the elements followed by @code{']'}
+@tab @samp{[} followed by the number of elements in the array followed by the type of the elements followed by @samp{]}
@item structures
-@tab @code{'@{'} followed by the name of the structure (or '?' if the structure is unnamed), the '=' sign, the type of the members and by @code{'@}'}
+@tab @samp{@{} followed by the name of the structure (or @samp{?} if the structure is unnamed), the @samp{=} sign, the type of the members and by @samp{@}}
@item unions
-@tab @code{'('} followed by the name of the structure (or '?' if the union is unnamed), the '=' sign, the type of the members followed by @code{')'}
+@tab @samp{(} followed by the name of the structure (or @samp{?} if the union is unnamed), the @samp{=} sign, the type of the members followed by @samp{)}
@end multitable
Here are some types and their encodings, as they are generated by the
@w{@uref{http://www.hpl.hp.com/personal/Hans_Boehm/gc/}}.
To enable the support for it you have to configure the compiler using an
-additional argument, @w{@kbd{--enable-objc-gc}}. You need to have
+additional argument, @w{@option{--enable-objc-gc}}. You need to have
garbage collector installed before building the compiler. This will
build an additional runtime library which has several enhancements to
support the garbage collector. The new library has a new name,
-@kbd{libobjc_gc.a} to not conflict with the non-garbage-collected
+@file{libobjc_gc.a} to not conflict with the non-garbage-collected
library.
When the garbage collector is used, the objects are allocated using the
once per class, immediately after the class has been initialized.
There is a new runtime function @code{class_ivar_set_gcinvisible()}
-which can be used to declare a so-called @strong{weak pointer}
+which can be used to declare a so-called @dfn{weak pointer}
reference. Such a pointer is basically hidden for the garbage collector;
this can be useful in certain situations, especially when you want to
keep track of the allocated objects, yet allow them to be
@end example
Weak pointers are supported through a new type character specifier
-represented by the @code{'!'} character. The
+represented by the @samp{!} character. The
@code{class_ivar_set_gcinvisible()} function adds or removes this
specifier to the string type description of the instance variable named
as argument.
GNU Objective-C provides constant string objects that are generated
directly by the compiler. You declare a constant string object by
-prefixing a C constant string with the character @code{@@}:
+prefixing a C constant string with the character @samp{@@}:
@example
id myString = @@"this is a constant string object";
User defined libraries may want to implement their own constant string
class. To be able to support them, the GNU Objective-C compiler provides
-a new command line options @code{-fconstant-string-class=<class
-name>}. The provided class should adhere to a strict structure, the same
+a new command line options @option{-fconstant-string-class=@var{class-name}}.
+The provided class should adhere to a strict structure, the same
as @code{NXConstantString}'s structure:
@example
string class from a different class than @code{Object}. There is no
requirement in the methods the constant string class has to implement.
-When a file is compiled with the @code{-fconstant-string-class} option,
+When a file is compiled with the @option{-fconstant-string-class} option,
all the constant string objects will be instances of the class specified
as argument to this option. It is possible to have multiple compilation
units referring to different constant string classes, neither the
a class name, it should replace it with @code{GSWApplication} (that is,
@code{WOApplication} is just an alias for @code{GSWApplication}).
-There are some constraints on how this can be used -
+There are some constraints on how this can be used---
@itemize @bullet