#include #include using namespace std; #define f1() cout << "f1()" << endl; #define f2() cout << "f2()" << endl; #define fun() \ { \ f1(); \ f2(); \ } #define fun1() \ do { \ f1(); \ f2(); \ } while (0) int f() { int *p = (int *)malloc(sizeof(int)); *p = 10; cout << *p << endl; #ifndef DEBUG int error = 1; #endif if (error) goto END; // dosomething END: cout << "free" << endl; free(p); return 0; } int ff() { int *p = (int *)malloc(sizeof(int)); *p = 10; cout << *p << endl; do { #ifndef DEBUG int error = 1; #endif if (error) break; // dosomething } while (0); cout << "free" << endl; free(p); return 0; } int fc() { int k1 = 10; cout << k1 << endl; do { int k1 = 100; cout << k1 << endl; } while (0); cout << k1 << endl; return 0; } int main() { if (1 > 0) fun(); if (2 > 0) fun1(); f(); ff(); fc(); return 0; }