LeviX
LeviX

Reputation: 3167

C self assignment in functions

Porting some legacy C code from QNX (Photon C compiler) to Linux (GCC). In several places I see code like this:

void process_data(char key, char *data)
{
    int i;

    /* Required for compilation */
    i=i;
    key=key;
    data=data;

    ...
}

Obviously this code is NOT required for compilation and it does nothing.

My question is why would you ever do this in the first place?

Upvotes: 2

Views: 1364

Answers (1)

SomeWittyUsername
SomeWittyUsername

Reputation: 18368

This removes compilation warnings/errors about unreferenced variables. Usually such stuff is done either by #pragmas or by a more expressive form, such as macro: #define unused_var(x) (x)=(x)

Upvotes: 5

Related Questions