<html lang="en">
<head>
<title>Operators - Untitled</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Untitled">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Expressions.html#Expressions" title="Expressions">
<link rel="prev" href="Location-Counter.html#Location-Counter" title="Location Counter">
<link rel="next" href="Evaluation.html#Evaluation" title="Evaluation">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU linker LD
(GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))
version 2.33.1.

Copyright (C) 1991-2019 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled ``GNU Free Documentation License''.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="Operators"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Evaluation.html#Evaluation">Evaluation</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Location-Counter.html#Location-Counter">Location Counter</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Expressions.html#Expressions">Expressions</a>
<hr>
</div>

<h4 class="subsection">3.10.6 Operators</h4>

<p><a name="index-operators-for-arithmetic-574"></a><a name="index-arithmetic-operators-575"></a><a name="index-precedence-in-expressions-576"></a>The linker recognizes the standard C set of arithmetic operators, with
the standard bindings and precedence levels:
<!-- TEXI2ROFF-KILL -->
<!-- END TEXI2ROFF-KILL -->
<pre class="smallexample">     precedence      associativity   Operators                Notes
     (highest)
     1               left            !  -  ~                  (1)
     2               left            *  /  %
     3               left            +  -
     4               left            &gt;&gt;  &lt;&lt;
     5               left            ==  !=  &gt;  &lt;  &lt;=  &gt;=
     6               left            &amp;
     7               left            |
     8               left            &amp;&amp;
     9               left            ||
     10              right           ? :
     11              right           &amp;=  +=  -=  *=  /=       (2)
     (lowest)
</pre>
   <p>Notes:
(1) Prefix operators
(2) See <a href="Assignments.html#Assignments">Assignments</a>. 
<!-- TEXI2ROFF-KILL -->
<!-- END TEXI2ROFF-KILL -->

   </body></html>

