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?

有帮助吗?

解决方案

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)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top