title: Facing difficulty in using typedef on a function.....getting error "redeclared as different kind of symbol"
body: <p>UART_ATMEGA328.h</p>
  <pre><code>#define UART_ATMEGA328_H_
  
  void USART_Init(unsigned long);             /* USART initialize function */
  char USART_RxChar();                        /* Data receiving function */
  void USART_TxChar(char);                    /* Data transmitting function */
  void USART_SendString(char*);               /* Send string of USART data function */
  
  #endif /* UART_ATMEGA328_H_ */ 
  </code></pre>
  <p>sim900.h</p>
  <pre><code>#define SIM900_H_
  
  typedef void (*USART_Init)(unsigned long);
  typedef void (*USART_SendString)(char*);
  typedef void (*USART_TxChar)(char);
  
  typedef struct
  {
      USART_Init start;
      USART_SendString write;
      USART_TxChar tx;
      //Define anything else you need ..
  }Sim900_Config_t;
  
  
  void InitiateGSM(); //Check GSM
  void SendSMS(char*); //Send SMS Function
  void StoreSMS(); //Store SMS
  
  #endif /* SIM900_H_ */
  
  </code></pre>
  <p>Error: 'USART_Init' redeclared as different kind of symbol/ 'USART_SendString' redeclared as different kind of symbol/ 'USART_TxChar' redeclared as different kind of symbol</p>