咨询电话:400-9710-111
资讯中心
搜索

2020计算机考研考研:C语言编译预处理问题

来源:中公考研网校 更新时间:2019年08月12日 08:31:52

 2020考研已经在紧张的复习中了,为了让大家更好的复习计算机考研,中公考研网校小编为参加2020考研的考生整理“2020计算机考研考研: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);

  }

  以上就是中公考研网校小编整理的“2020考研:C语言中编译预处理问题探讨”文章,希望这些能够帮助各位计算机考研的小伙伴们更好的掌握C语言知识点。更多2020计算机考研复习备考计划请访问中公考研网校计算机考研复习资料频道!

  相关推荐:

  【在职考研】2020计算机考研网络课程

  【大学生考研】2020计算机考研网络课程

  2020计算机考研复习资料汇总(每日更新)

  2020计算机考研习题/模拟题汇总

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

【责任编辑:shy46624(桑红妍) 】

共1页 当前第1页
考研暑期圆梦礼包
历年试题
考试大纲
备考计划
0元好课
思维导图
核心考点
手机号快捷登录1
账号密码登录
本周热门直播

更多直播