C语音宏定义#ifndef、#def、#endif

1.#ifdef 标识符

x1

else

x2

#endif

当标识符已经被定义过就执行x1 否则执行x2

2.#ifndef 

当标识符没有 被定义过就执行x1否则执行x2

3.#if 表达式

x1

else

x2

#endif

当表达式为真(非零)就执行x1否则执行x2

  例如:输入一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写字母输出。
  #define LETTER 1
  main()
  {
  char str[20]="C Language",c;
  int i=0;
  while((c=str[i])!='/0'){
  i++;
  #if LETTER
  if(c>='a'&&c<='z') c=c-32;
  #else
  if(c>='A'&&c<='Z') c=c+32;
  #endif
  printf("%c",c);
  }
  }
 
  运行结果为:C LANGUAGE
  现在先定义LETTER为1,这样在预处理条件编译命令时,由于LETTER为真(非零),则对第一个if语句进行编译,运行时使小写字母变大写。如果将程序第一行改为:
  #define LETTER 0
 
  则在预处理时,对第二个if语句进行编译处理,使大写字母变成小写字母(大写字母与相应的小写字母的ASCII代码差32)。此时运行情况为:
  c language



猜你喜欢

转载自blog.csdn.net/Bill_Marz/article/details/80648385