- 论坛徽章:
- 1
|
这个符合题意不?没有调用输出,连printf的地址都没引用。
#include <stdio.h>
int gi = 1;
f()
{
int i;
// /*
}
#define f new_func
#define gi ( *( \
i < 10 /* Keep old &gi, gi when i < 10 */ \
? &gi \
: ( i < 20 \
? ( *(&gi + 1) = 2, &gi + 1 ) \
: ( *(int *)0 = 0 /* Throw "Segmentation fault" when i == 20" */, &gi + 1 ) \
) \
) \
)
f()
{
int i;
// */
for(i = 0; i < 256; i++) {
printf("i = %d, addr = %p value = %d\n", i, &gi, gi);
}
}
main()
{
f();
} |
|
|