当前位置: 代码迷 >> C语言 >> 求#if() #endif 是什么意思 呀
  详细解决方案

求#if() #endif 是什么意思 呀

热度:622   发布时间:2008-04-09 13:06:19.0
求#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是什么意思 呀哪位兄弟可以帮我说明一下呀
搜索更多相关的解决方案: endif  意思  str  CHANGE  MAX  

----------------解决方案--------------------------------------------------------
如果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);
}


这里面我故意加了几个汉字进去,我把那个条件的值改成了0,也就是不会编译,你编译的时候肯定是没有错误的
----------------解决方案--------------------------------------------------------
楼上说的好
----------------解决方案--------------------------------------------------------