% This LaTeX file generated by cxref (version 1.6e+svn).
% cxref program (c) Andrew M. Bishop 1995-2016.

% Cxref: ../src/cxref -O. -NREADME-TMP -xref -latex -html-src -rtf -sgml README.c
% CPP  : /usr/src/cxref/cxref-1.6e+667-1.x86_64/build/cpp/cxref-cpp -cxref-cpp-defines /usr/src/cxref/cxref-1.6e+667-1.x86_64/build/cpp/cxref-cpp.defines -lang-c -C -dD -dI

\markboth{File README.c}{File README.c}
\section{File README.c}
\label{file_README.c}

{\bf RCS Header: /home/amb/CVS/cxref/doc/README.c,v 1.4 1997-05-26 11:23:40 amb Exp }

\smallskip

  A comment for the file, RCS header comments are treated specially when first.


\subsection*{Included Files}

 A \#include comment 

\smallskip
\begin{cxreftabi}
{\stt \#include <stdio.h>} &\\
\end{cxreftabi}

\medskip
 An alternative \#include comment. 

\smallskip
\begin{cxreftabi}
{\stt \#include <math.h>} &\\
\end{cxreftabi}


\subsection*{Preprocessor definitions}

 A \#define comment. 

\smallskip
{\stt \#define def1 1}

\medskip
 An alternative \#define comment. 

\smallskip
{\stt \#define def2 2}

\medskip
  A \#define with args

\smallskip
{\stt \#define def3( arg1, arg2 )}

\smallskip
\begin{cxrefarglist}
\cxrefargitem{arg1} The first arg
\cxrefargitem{arg2} The second arg
\end{cxrefarglist}

\medskip
 An alternative \#define with args. 

\smallskip
{\stt \#define def4( arg1, arg2 )}

\smallskip
\begin{cxrefarglist}
\cxrefargitem{arg1}  The first arg  
\cxrefargitem{arg2}  The second arg 
\end{cxrefarglist}


\subsection{Type definitions}


\subsubsection{Typedef type1}
\label{type_type1_README.c}

 An example typedef comment 

\smallskip
{\stt typedef enum \{...\} type1}

\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt enum} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt one;} &  one value  \\
\hspace*{0.2in}{\stt two;} &  another value  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type union bar}
\label{type_union_bar_README.c}

 Nested structs and unions also work. 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt union bar} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char a;} &  Each element  \\
\hspace*{0.2in}{\stt int b;} &  of a struct  \\
\hspace*{0.2in}{\stt int c;} &  or a union  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt long d;} &  can have a comment  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Typedef type2}
\label{type_type2_README.c}

 Another example typedef comment,   a type that is a struct. 

\smallskip
{\stt typedef struct \{...\} type2}

\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt int a;} &  A variable in a struct.  \\
\hspace*{0.2in}{\stt union bar} &\\
\hspace*{0.3in}{\stt \{} &\\
\hspace*{0.4in}{\stt char a;} &  Each element  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.4in}{\stt int b;} &  of a struct  \\
\hspace*{0.4in}{\stt int c;} &  or a union  \\
\hspace*{0.4in}{\stt long d;} &  can have a comment  \\
\hspace*{0.3in}{\stt \}} &\\
\hspace*{0.3in}{\stt e;} &  Nested structs and unions also work.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Typedef ptype2}
\label{type_ptype2_README.c}

 Another example typedef comment,   a pointer to a struct type. 

\smallskip
{\stt typedef struct \{...\}* ptype2}

\smallskip
\begin{cxreftabii}
See:& Typedef type2 & \cxreftype{type2}{README.c}\\
\end{cxreftabii}


\subsection{Variables}


\subsubsection{Variable var1}
\label{var_var1_README.c}

 A leading comment only. 

\smallskip
{\stt int var1}

\smallskip
\begin{cxreftabiii}
Visible in:\ & README.c & \ & \cxreffile{README.c}\\
Used in:\ & function1() & README.c & \cxreffunc{function1}{README.c}\\
\end{cxreftabiii}


\subsubsection{Variable var2}
\label{var_var2_README.c}

 A leading comment only. 

\smallskip
{\stt int var2}

\smallskip
\begin{cxreftabiii}
Visible in:\ & README.c & \ & \cxreffile{README.c}\\
\end{cxreftabiii}


\subsubsection{Variable var4}
\label{var_var4_README.c}

 A variable for   one thing. 

\smallskip
{\stt int var4}

\smallskip
\begin{cxreftabiii}
Visible in:\ & README.c & \ & \cxreffile{README.c}\\
Used in:\ & function1() & README.c & \cxreffunc{function1}{README.c}\\
\end{cxreftabiii}


\subsubsection{Variable var5}
\label{var_var5_README.c}

 A variable for   a second thing. 

\smallskip
{\stt int var5}

\smallskip
\begin{cxreftabiii}
Visible in:\ & README.c & \ & \cxreffile{README.c}\\
\end{cxreftabiii}


\subsubsection{Variable var6}
\label{var_var6_README.c}

 A variable for   a third thing. 

\smallskip
{\stt int var6}

\smallskip
\begin{cxreftabiii}
Visible in:\ & README.c & \ & \cxreffile{README.c}\\
\end{cxreftabiii}


\subsubsection{Local Variables}

{\bf var3}
\label{var_var3_README.c}

 A trailing comment only. 

\smallskip
{\stt static int var3}

\smallskip
\begin{cxreftabiii}
Used in:\ & function1() & \ & \cxreffunc{function1}{README.c}\\
\end{cxreftabiii}


\subsection{Functions}


\subsubsection{Global Function function1()}
\label{func_function1_README.c}

  A function comment (the comments for the args need to be separated by a blank line).

\smallskip
{\stt int function1 ( int arg1, int arg2 )}

\smallskip
\begin{cxrefarglist}
\cxrefargitem{int function1} The return value.
\cxrefargitem{int arg1} The first argument.
\cxrefargitem{int arg2} The second argument.
\end{cxrefarglist}

\smallskip
  Some more comments

 This comment is only visible in the \LaTeX output, and can contain \LaTeX markup.

 An internal comment in a function that appears as a
   new paragraph at the end of the comment. 

\smallskip
\begin{cxreftabiii}
Calls:\ & function2() & README.c & \cxreffunc{function2}{README.c}\\
Used in:\ & function2() & README.c & \cxreffunc{function2}{README.c}\\
Refs Var:\ & var1 & README.c & \cxrefvar{var1}{README.c}\\
\ & var3 & README.c & \cxrefvar{var3}{README.c}\\
\cxreftabbreak{cxreftabiii}
\ & var4 & README.c & \cxrefvar{var4}{README.c}\\
\end{cxreftabiii}


\subsubsection{Global Function function2()}
\label{func_function2_README.c}

 An alternative function comment 

\smallskip
{\stt int function2 ( int arg1, int arg2, void )}

\smallskip
\begin{cxrefarglist}
\cxrefargitem{int function2}  Returns a value 
\cxrefargitem{int arg1}  The first argument.  
\cxrefargitem{int arg2}  The second argument. 
\cxrefargitem{void} \ 
\end{cxrefarglist}

\smallskip
\begin{cxreftabiii}
Called by:\ & function1() & README.c & \cxreffunc{function1}{README.c}\\
Refs Func:\ & function1() & README.c & \cxreffunc{function1}{README.c}\\
\end{cxreftabiii}

