% Format: latex

% $Header: J:\MICROP\56FTWS0\RCS\cprec.tex 1.3 1996/02/22 17:00:04 Nick Exp Nick $

% $Log: cprec.tex $
% Revision 1.3  1996/02/22  17:00:04  Nick
% The h specifier did the trick for placing the table properly.
%
% Revision 1.2  1996/02/22  16:58:15  Nick
% Tried to put at bottom of the page.
%
% Revision 1.1  1996/02/22  16:57:07  Nick
% Initial revision
%

\documentclass[%
   a4paper%
   %11pt%
   %12pt%
   ]{article}

\usepackage{%
   %a4,%
   vmargin,%
   booktabs,%
   %varioref,%
   %multicol,%
   fancyhea,%
   %fullpage,%
   %emlines2,%
   %xr,%
   %acro,%
   %cols,%
   %key,%
   array,%   %prog,%
   %nbox,%
   %amssymb,%
   %amsmath,%
   lgrind,%
   %tabularx,%
   nick%
}

% Turn off meaning of vertical bar for lgrind.

%|-

\setmarginsrb{30mm}% left
             {18mm}% top
             {30mm}% right
             {10mm}% bottom
             {15pt}% headheight---increase to stop fancyhead warn
             {8mm}%  headsep
             {0pt}%  footheight
             {11mm}% footskip

%\pagestyle{fancy}
%\lhead{\textbf{\upshape }}
%\rhead{\textbf{\thepage}}
%\cfoot{}

\begin{document}

\thispagestyle{empty}
{\centering
\Large\bfseries  Operators used in the C programming language
}

\vspace{3ex}

\begin{table}[bh!]
\setlength{\extrarowheight}{0pt}
\newcommand*{\cm}{,\,\,}
\newcommand*{\opSep}{2ex}
\centering
%@-
\begin{tabular}{@{}lcl@{}}
%@+
\toprule
%@-
\multicolumn{1}{@{}c}{\em Level} &
\multicolumn{1}{c}{\em Operator} &
\multicolumn{1}{c@{}}{\em Function} \\
%@+
\midrule
15L & @->@\cm@.@                  & structure member selectors \\
    & @[]@                    & array index \\
    & @()@                    & function call \\ [\opSep]

14R & @sizeof@                & size in bytes \\
    & @++@\cm@--@                 & increment, decrement \\
    & @~@                  & bitwise NOT \\
    & @!@                     & logical NOT \\
    & @+@\cm@-@                   & unary plus, minus \\
    & @*@\cm@&@                  & dereference, address-of \\
    & @()@                    & type conversion (cast) \\ [\opSep]
13L & @*@\cm@/@\cm\textsf{\%}                & multiply, divide, modulus \\ [\opSep]
12L & @+@\cm@-@                   & arithmetic operators \\ [\opSep]
11L & @<<@\cm@>>@         & bitwise shift \\ [\opSep]
10L & @<@\cm@<=@\cm@>@\cm@>=@     & relational operators \\ [\opSep]
9L  & @==@\cm@!=@                 & equality, inequality \\ [\opSep]
8L  & @&@                    & bitwise AND \\ [\opSep]
7L  & @^@                   & bitwise XOR \\ [\opSep]
6L  & @|@                   & bitwise OR \\ [\opSep]
5L  & @&&@                  & logical AND \\ [\opSep]
4L  & @||@                & logical OR \\ [\opSep]
3L  & @?:@                    & arithmetic if \\ [\opSep]
2R  & @=@ & assignment operator \\
    & @*=@\cm@/=@\cm\textsf{\%=} & compound assignment operators \\
    & \textsf{+=}\cm\textsf{$-$=}\cm@<<=@     & \\
    & @>>=@\cm@&=@\cm@|=@\cm@^=@ & \\ [\opSep]
1L  & @,@                     & comma operator \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

