求#if() #endif 是什么意思 呀
设计程序使它指导当前的字母变成下一个字母 #include "stdio.h"
#define MAX 80
#define CHANGE 1
#include<stdio.h>
main()
{
int i;
char str[MAX]
printf("请输入文本行:\n");
scanf("%s",str);
#if(CHANGE)
{
for(i=0;i<MAX;i++)
{if str[i]!='\0')
if(str[i]>='a'&&str[i]<'z'
||str[i]>='A'&&str[i]<'Z')
str[i]+=1;
else if(str[i]=='Z'||strp[i]='z')
str[i]-=25;
}
}#endif
printf("%s",str);
}
我怎么也不明白#if和#endif是什么意思 呀哪位兄弟可以帮我说明一下呀
----------------解决方案--------------------------------------------------------
如果CHANGE为0,即条件假,则#if与#endif之间的语句不执行,
其实比/* 和 */实用更有效!
----------------解决方案--------------------------------------------------------
条件编译:根据编译时的条件接受或忽略信息块;
#if 常量整数表达式
..
#endif
----------------解决方案--------------------------------------------------------
这个我懂得,但是为什么要用 带“#”的,为什么不直接用 if else啊?
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
可是 已经定义CHANGE为0,而没有#IF又不行这是为什么呀 ----------------解决方案--------------------------------------------------------
这个是预编译命令,如果条件成立就编译里面内容,如果不成立,就不编译,你可以试一下这个程序:
程序代码:
#include "stdio.h"
#define MAX 80
#define CHANGE 0
#include<stdio.h>
main()
{
int i;
char str[MAX];
printf("请输入文本行:\n");
scanf("%s",str);
#if(CHANGE)
{
for(i=0;i<MAX;i++)
{
if str[i]!='\0')
if(str[i]>='a'&&str[i]<'z'
||str[i]>='A'&&str[i]<'Z')
str[i]+=1;
else if(str[i]=='Z'||strp[i]='z')
str[i]-=25;
}
编译会错吗?
}
#endif
printf("%s",str);
}
#define MAX 80
#define CHANGE 0
#include<stdio.h>
main()
{
int i;
char str[MAX];
printf("请输入文本行:\n");
scanf("%s",str);
#if(CHANGE)
{
for(i=0;i<MAX;i++)
{
if str[i]!='\0')
if(str[i]>='a'&&str[i]<'z'
||str[i]>='A'&&str[i]<'Z')
str[i]+=1;
else if(str[i]=='Z'||strp[i]='z')
str[i]-=25;
}
编译会错吗?
}
#endif
printf("%s",str);
}
这里面我故意加了几个汉字进去,我把那个条件的值改成了0,也就是不会编译,你编译的时候肯定是没有错误的
----------------解决方案--------------------------------------------------------
楼上说的好
----------------解决方案--------------------------------------------------------