如题所述
第1个回答 2019-11-08
#if
是预编译命令。它的条件只能是一些定值:预定义变量、预定义字符串。这里num(0)
需要在运行时才有返回值。
是预编译命令。它的条件只能是一些定值:预定义变量、预定义字符串。这里num(0)
需要在运行时才有返回值。
第2个回答 2020-04-26
这个是条件编译命令,表示SPEND为真时,下面的语句才能加入编译器进行编译,为假时,下面的语句不参与编译。可以去掉defined
#if
1
#if
defined(SPEND)
#if
0
#if
defined(SPEND)
#endif和
#endif
当SPEND为真时,效果一样,
#endif
和
#endif
当SPEND为假时,效果一样。
比如:
main()
{
char
a[]="a参加了编译";
char
b[]="b参加了编译";
#if
defined(M)
printf("%s\n",a);
#endif
printf("%s\n",b);
}
当M为真时,编译器先把代码变成:
main()
{
char
a[]="a参加了编译";
char
b[]="b参加了编译";
printf("%s\n",a);
printf("%s\n",b);
}
再编;
当M为假时,会变成这样再编:
main()
{
char
a[]="a参加了编译";
char
b[]="b参加了编译";
printf("%s\n",b);
}
#if
1
#if
defined(SPEND)
#if
0
#if
defined(SPEND)
#endif和
#endif
当SPEND为真时,效果一样,
#endif
和
#endif
当SPEND为假时,效果一样。
比如:
main()
{
char
a[]="a参加了编译";
char
b[]="b参加了编译";
#if
defined(M)
printf("%s\n",a);
#endif
printf("%s\n",b);
}
当M为真时,编译器先把代码变成:
main()
{
char
a[]="a参加了编译";
char
b[]="b参加了编译";
printf("%s\n",a);
printf("%s\n",b);
}
再编;
当M为假时,会变成这样再编:
main()
{
char
a[]="a参加了编译";
char
b[]="b参加了编译";
printf("%s\n",b);
}