Page 135 - C-Language
P. 135

The header <float.h> defines various limits for floating point operations.


        Floating point arithmetic is implementation defined. However, most modern platforms (arm, x86,
        x86_64, MIPS) use IEEE 754 floating point operations.

        C also has three optional complex floating point types that are derived from the above.


        Interpreting Declarations


        A distinctive syntactic peculiarity of C is that declarations mirror the use of the declared object as it
        would be in a normal expression.


        The following set of operators with identical precedence and associativity are reused in
        declarators, namely:

            •  the unary * "dereference" operator which denotes a pointer;
            •  the binary [] "array subscription" operator which denotes an array;
            •  the (1+n)-ary () "function call" operator which denotes a function;
            •  the () grouping parentheses which override the precedence and associativity of the rest of
              the listed operators.


        The above three operators have the following precedence and associativity:


          Operator                 Relative Precedence       Associativity


          [] (array subscription)  1                         Left-to-right

          () (function call)       1                         Left-to-right


          * (dereference)          2                         Right-to-left


        When interpreting declarations, one has to start from the identifier outwards and apply the
        adjacent operators in the correct order as per the above table. Each application of an operator can
        be substituted with the following English words:



          Expression          Interpretation

          thing[X]            an array of size X of...


          thing(t1, t2, t3)   a function taking t1, t2, t3 and returning...

          *thing              a pointer to...



        It follows that the beginning of the English interpretation will always start with the identifier and will
        end with the type that stands on the left-hand side of the declaration.


        Examples





        https://riptutorial.com/                                                                             111
   130   131   132   133   134   135   136   137   138   139   140