简体   繁体   中英

(C) Function which impersonates a block of code in main

I'm trying to explain this satisfactorily, but when I call a function I want it to virtually insert itself into the main function's code in the place where I call it, so I can save typing it out multiple times, however it directly affects variables defined in the scope of the main function. What's the best way to achieve this?

EDIT : I should probably make it clear I also want it to take a single argument.

Sounds like you need a preprocessor macro. These aren't real functions, but blocks of code the the preprocessor replaces before compiling the code. Eg, consider a simple macro to increment a number:

#include <stdio.h>

#define INC(x) (x)++

int main() {
    int a = 1;
    INC(a);
    INC(a);
    printf("%d\n", a);
    return 0;
}

The text INC(a) will be replaced with a++ , so running this program will print out 3 (1 after two increments).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM