十八年专注考研辅导
因为专注,所以出色

0371-60904200 全国咨询热线服务
您所在的位置: 首页 > 考研备考 > 正文
考研备考

​计算机知识整理之C语言中编译预处理问题探讨

来源:天任考研  |  更新时间:2022-10-25 22:21:15  |  关键词: 23考研

  •  
  •  
  •  

天任考研小编为大家整理了“计算机知识整理之C语言中编译预处理问题探讨”相关内容,为报考计算机专业的考生们提供指导。更多有关计算机考研干货可关注考研备考栏目。

 

计算机知识整理之C语言中编译预处理问题探讨

  (一)无参宏定义

  无参宏定义的一般格式为:

  #define 标识符 字符串

  其中:“define”为宏定义命令;“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。

  注意:

  (1)宏名一般用大写字母表示,以与变量区别,但这并非是规定。

  (2)宏定义不是C语句,所以不能在行尾加分号。否则,宏展开时,会将分号作为字符串的1个字符,用于替换宏名。

  (3)在宏展开时,预处理程序仅按宏定义简单替换宏名,而不作任何检查。如果有错误,只能由编译程序在编译宏展开后的源程序时发现。

  (4)宏定义命令#define出现在函数的外部,宏名的有效范围是:从定义命令之后,到本文件结束。通常,宏定义命令放在文件开头处。

  (5)在进行宏定义时,可以引用已定义的宏名。

  (6)对双引号括起来的字符串内的字符,即使与宏名同名,也不进行宏展开。

  【例】从键盘输入不超过100个字符,并统计其中英文字母(不区分大小写)的个数,直到输入的字符为'*'或输入的字符个数超过100为止。

  #include"stdio.h" /*文件包含*/

  #define MAXnum 100 /*键盘输入不超过100个字符*/

  void main()

  { int i,count=0;

  char c;

  for(i=0;i

  { c=getchar();

  if(c=='*') /*输入的字符为'*'时结束*/

  break;

  if(c>='a'&&c<='z'||c>='A'&&c<='Z')

  ++count;

  }

  printf("Count=%d",count);

  }

  (二)有参宏定义

  有参宏定义的一般格式为:

  #define 宏名(形参表) 字符串

  调用格式:宏名(实参表)

  有参宏展开:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。

  注意:

  (1)定义有参宏时,宏名与左圆括号之间不能留有空格。否则,C编译系统将空格以后的所有字符均作为替代字符串,而将该宏视为无参宏。

  (2)有参宏的展开,只是将实参作为字符串,简单地置换形参字符串,而不做任何语法检查。

  【例】从键盘输入两个整数,并把其中的较大值显示出来。

  #include"stdio.h"

  #define MAX(a,b) ((a)>(b)?(a):(b))

  main( )

  {

  int x,y,z;

  scanf("%d%d",&x,&y);

  z=MAX(x,y);

  printf("Max=%d",z);

  }

  后,希望这些分享能够帮助各位小伙伴们更好的掌握C语言知识点。

专业课.jpg

以上是天任考研小编为大家带来的“计算机知识整理之C语言中编译预处理问题探讨”,希望考生们都能备考顺利,考上自己心仪的院校。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。邮箱:zzqihangpx@163.com 电话:0371-60903400

天任考研微信群

扫码加入2026考研群
获取考研咨询一对一服务


热报课程

报考信息


备考指南


报名咨询电话:0371-60904200
Copyright©2006-2020  郑州市天任教育科技有限公司 豫ICP备2024092498号

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。电话:0371-60904200