<refentry id="funcparams.element">
<?dbhtml filename="funcparams.html"?>
<refentryinfo>
<pubdate>$Date$</pubdate>
<releaseinfo>$Revision$</releaseinfo>
</refentryinfo>

<refmeta>
<indexterm><primary>elements</primary>
<secondary>funcparams</secondary></indexterm>
<refentrytitle>funcparams</refentrytitle>
<refmiscinfo>Element</refmiscinfo>
</refmeta>
<refnamediv>
<refname>funcparams</refname>
<refpurpose>&funcparams.purpose;</refpurpose>
</refnamediv>

&funcparams.synopsis.gen;
<refsect1 condition='ref.description'><title>Description</title>

<para>
In some programming languages (like C), it is possible for a
function to have a pointer to another
function as one of its parameters.  In the syntax summary for such a function, the
<sgmltag>FuncParams</sgmltag> element provides a wrapper for the
function pointer.
</para>

<para>
For example, the following prototype describes the function
<function>sort</function>, which takes two parameters. The first
parameter, <parameter>arr</parameter>, is an array of integers. The second
parameter is a pointer to a function, <function>comp</function> that returns
an <type>int</type>. The <function>comp</function> function takes two parameters,
both of type <type>int *</type>:

<screen>
<![CDATA[
<funcprototype>
  <funcdef>void <function>sort</function></funcdef>
    <paramdef>int *<parameter>arr</parameter>[]</paramdef>
    <paramdef>int <parameter>(* comp)</parameter>
      <funcparams>int *, int *</funcparams></paramdef>
</funcprototype>
]]>
</screen>
</para>

<refsect2><title>Processing expectations</title>
<para>
&format.inline; For a complete description of the processing expecations,
see <sgmltag>FuncSynopsis</sgmltag>.
</para>
</refsect2>

<refsect2 role='fu' revision="4.0"><title>&FutureChanges;</title>
<para>
<!--do not index this occurance-->
&fu.interfacedefinition;
</para>
</refsect2>


&funcparams.parents.gen;
&funcparams.children.gen;
</refsect1>
<refsect1 condition='ref.elem.seealso'><title>See Also</title>
&funcparams.seealso.gen;
</refsect1>
<refsect1><title>Examples</title>

<informalexample role="example-source">
<programlisting>&funcparams.example.1.txt;</programlisting>
</informalexample>

<anchor id="ex.os.funcparams.1" role="HACK-ex.out.start"/>
&funcparams.example.1.gen;
<anchor id="ex.oe.funcparams.1" role="HACK-ex.out.end"/>

&funcparams.example.seealso.gen;
</refsect1>
</refentry>

