This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to use extern sbit declare?

I declare a variable unsigned char bdata Kde in a.c.

[in file a.c]

unsigned char bdata Kde;

Than I want to use the variable inb.c.
[in file b.c]
#include <stdio.h>
.....
extern unsigned char bdata Kde;
sbit testbit=Kde^1;
void main(void)
{......}

:error C141:.......a.c:syntax error near 'sbit'

why?

Parents
  • sbit MODEM_RING = P1 ^ 4;
    #define MODEM_RING 0x04 // ring input

    My question is, why was there no warning?


    Because #define is a preprocessor directive. These replacements are made before the compiler ever sees the C code.

    For the same reason, I can

    #define if

    and effectively remove the if keyword from the C language (for all subsequent C statements).

    Jon

Reply
  • sbit MODEM_RING = P1 ^ 4;
    #define MODEM_RING 0x04 // ring input

    My question is, why was there no warning?


    Because #define is a preprocessor directive. These replacements are made before the compiler ever sees the C code.

    For the same reason, I can

    #define if

    and effectively remove the if keyword from the C language (for all subsequent C statements).

    Jon

Children