title: "error: expected identifier or ‘(’ before numeric constant" –?
body: <p>The error in the title occurs on the '<code>#define</code>' line for every single function-like macro in this header file (starting at line 45). Am I doing something wrong?</p>
  
  <pre><code>#ifndef ASSEMBLER_H
  #define ASSEMBLER_H
  
  
  /* Ports */
  #define   Input    0
  #define   Output   15
  
  /* Registers */
  #define   Z    0
  #define   A    1
  #define   B    2
  #define   C    3
  #define   D    4
  #define   E    5
  #define   F    6
  #define   G    7
  
  /* OP Codes */
      /*-----Control--------*/
  #define   HLT_OP    0
  #define   JMP_OP    1
  #define   CJMP_OP   2
  #define   OJMP_OP   3
      /*-----Load/Store-----*/
  #define   LOAD_OP   4
  #define   STORE_OP  5
  #define   LOADI_OP  6
  #define   NOP_OP    7
      /*-----Math-----------*/
  #define   ADD_OP    8
  #define   SUB_OP    9
      /*-----Device I/O-----*/
  #define   IN_OP     10
  #define   OUT_OP    11
      /*-----Comparison-----*/
  #define   EQU_OP    12
  #define   LT_OP     13
  #define   LTE_OP    14
  #define   NOT_OP    15
  
  /* Macros */
      /*-----Control--------*/
  #define HLT()
    ( HLT_OP &lt;&lt; 28 )
  #define JMP(address)
    ( (JMP_OP &lt;&lt; 28) | (address) )
  #define CJMP(address)
    ( (CJMP_OP &lt;&lt; 28) | (address) )
  #define OJMP(address)
    ( (OJMP_OP &lt;&lt; 28) | (address) )
      /*-----Load/Store-----*/
  #define LOAD(dest, value)
    ( (LOAD_OP &lt;&lt; 28) | ((dest) &lt;&lt; 24) | (value) )
  #define STORE(dest, value)
    ( (STORE_OP &lt;&lt; 28) | ((dest) &lt;&lt; 24) | (value) )
  #define LOADI(dest, value)
    ( (LOADI_OP &lt;&lt; 28) | ((dest) &lt;&lt; 24) | (value) )
  #define NOP()
    ( NOP_OP &lt;&lt; 28 )
      /*-----Math-----------*/
  #define ADD(dest, op1, op2)
    ( (ADD_OP &lt;&lt; 28) | ((dest) &lt;&lt; 24) | ((op1) &lt;&lt; 20) | ((op2) &lt;&lt; 16) )
  #define SUB(dest, op1, op2)
    ( (SUB_OP &lt;&lt; 28) | ((dest) &lt;&lt; 24) | ((op1) &lt;&lt; 20) | ((op2) &lt;&lt; 16) )
      /*-----Device I/O-----*/
  #define IN(reg)
    ( (IN_OP &lt;&lt; 28) | ((reg) &lt;&lt; 24) | (Input) )
  #define OUT(reg)
    ( (OUT_OP &lt;&lt; 28) | ((reg) &lt;&lt; 24) | (Output) )
      /*-----Comparison-----*/
  #define EQU(reg1, reg2)
    ( (EQU_OP &lt;&lt; 28) | ((reg1) &lt;&lt; 24) | ((reg2) &lt;&lt; 20) )
  #    define LT(reg1, reg2)
    ( (LT_OP &lt;&lt; 28) | ((reg1) &lt;&lt; 24) | ((reg2) &lt;&lt; 20) )
  #define LTE(reg1, reg2)
    ( (LTE_OP &lt;&lt; 28) | ((reg1) &lt;&lt; 24) | ((reg2) &lt;&lt; 20) )
  #define NOT()
    ( NOT_OP &lt;&lt; 28 )
  
  
  
  #endif
  </code></pre>