C and embedded - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

C and embedded

#include
#include
#define RW 0
#define write() RW|=1
int main()
{
printf("Before
%d",RW);
write();
printf("After calling WRITE
%d",RW);
getch();
return 0;
}

Hi all

Iam new to embedded programming with C
In the above program Iam trying to modify a macro with #define
Its not working
Please tell me where I went wrong

Comments

  • allskylineallskyline Posts: 6Member
    hi,
    Because RW is a macro define, its value can't be changed. In your program, define write() with RW |= 1, and when this program is compiled, write() will be replaced with 0 |= 1, it is impossible.
    if you want to change the value of RW, you can use this:
    #include

    static unsigned int RW = 0;

    __inline write()
    {
    RW |= 1;
    }

    int main()
    {
    printf("Before
    %d", RW);
    write();
    printf("After calling WRITE
    %d", RW);
    getchar();

    return 0;
    }

    [link=http://www.coocox.org/CooCox_Builder.htm]http://www.coocox.org/CooCox_Builder.htm[/link]
    [u]a completely free and highly automatical integrated development environment for the application based on ARM Cortex M3[/u]

Sign In or Register to comment.