1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

Conflicting type error

Discussion in 'C' started by puneetnepsam, Jun 10, 2009.

  1. puneetnepsam

    puneetnepsam New Member

    i am writing a c code for microcontroller in the mplab compiler
    typedef struct __attribute__ ((packed)) 
     unsigned char ser_time_out_flag:1;
     unsigned char usb_time_out_flag:1;
     unsigned char sms_time_out_flag:1;
     unsigned char gprs_time_out_flag:1;
     unsigned char wr_power_log_flag:1;
     unsigned char sms_rx_flag:1;
    typedef struct __attribute__ ((packed))       
     unsigned char rxd_byte_ctr;
     unsigned char total_bytes;
     unsigned char cmd_type;
     unsigned char start_addr;
     unsigned char cal_checksum;
     unsigned char rxd_checksum;
     unsigned char ack_nack_byte;
     unsigned reception_start:1;
     unsigned pro_data:1;
    typedef struct __attribute__ ((packed)) 
       unsigned char  CmdBuf[RCV_BUFFER_SIZE];
       unsigned char  SerCmdTotalByte;
       unsigned       SerRcvDataInFlag:1;     // a global flag set when UART data Rcved
       unsigned       SerRcvCmdType   :2;     // CMD_GET or CMD_SET
       unsigned char  UsbCmdTotalByte;
       unsigned       UsbRcvDataInFlag:1;     // a global flag set when USB data Rcved
       unsigned       UsbRcvCmdType   :2;     // CMD_GET or CMD_SET   
    following errors are coming:

    serial.h:60: error: conflicting types for 'S_GLOBAL_FLAG'
    serial.h:60: error: previous declaration of 'S_GLOBAL_FLAG' was here
    serial.h:73: error: conflicting types for 'S_SER_INFO'
    serial.h:73: error: previous declaration of 'S_SER_INFO' was here
    serial.h:86: error: conflicting types for 'S_CMD_BUF_INFO'
    serial.h:86: error: previous declaration of 'S_CMD_BUF_INFO' was here

    can anyone please tell me the problem and how to rectify it!!!
    Last edited by a moderator: Jun 11, 2009
  2. xpi0t0s

    xpi0t0s Mentor

    Use code blocks please.

    Are you including serial.h twice in the same code?
    For example if you include serial.h and foo.h, and foo.h itself includes serial.h, then the answer to this question is yes.
    A common solution to multiple includes is to add something along the following lines:
    #ifndef _SERIAL_H_
    #define _SERIAL_H_
    // serial.h contents
    Then when you include serial.h the first time, _SERIAL_H_ isn't defined, #ifndef evaluates TRUE and _SERIAL_H_ is defined. The second time serial.h is referenced the #ifndef evaluates FALSE and you don't get duplicate definitions.
  3. puneetnepsam

    puneetnepsam New Member

    thanks a lot buddy....
    my problem got solved....:charming:

Share This Page