一道C语言的变量作用域的问题。#ifdef

#include<stdio.h>
#define TRUE 1
#define FALSE 0
#define PQ(x,y) x*x+y*y
int num1=1,num2,num3;
void fun1(){
int num1=1;
static int num2=2;
num3+=num1+num2++;
printf("in fun1() num1=%d,num2=%d,num3=%d\n",num1,num2,num3);
}
void main(){
num3+=(num2++)-(--num1);
printf("in main() num1=%d,num2=%d,num3=%d\n",num1,num2,num3);
num1=num2=num3=TRUE;
fun1();
num1=num2=num3=FALSE;
fun1();
#ifdef FALSE
num1=1; num2=2;
num3=PQ(num1+num2,num1-num2);
#else
num1=3; num2=4;
num3=PQ(num1,num2);
#endif
printf("in main() num1=%d,num2=%d,num3=%d\n",num1,num2,num3);
}




慕勒3428872
浏览 835回答 3
3回答

饮歌长啸

#ifdef#define等等, 它们都是在预编译的时候完成的,就是在编译代码之前,num3=PQ(num1,num2);代码替换为num3= num1*num2+num1*num2,然后编译链接运行
打开App,查看更多内容
随时随地看视频慕课网APP