第七章预处理与结构体十个问题及解答

                                                                       

                                                                                          第七章预处理与结构体十个问题及解答


           

1.预处理的定义是什么?

  所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所做的工作。预处理是c语言的一个重要功能,它由预处理程序负责完成。当对一个源程序进行编译时,系统将自动引用预处理程序对源程序中的预处理部分进行处理,处理完毕自动进入对源程序的编译。

 

 

2.无参宏定义和带参宏定义的一般形式分别是什么?

  无参宏定义:

  #define 标识符 字符串

 

  带参宏定义:

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

 

 

3.对于宏定义需要注意哪几点?

  1)宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不做任何检查,如有错误,只能在编译已被宏展开后的源程序时发现。

  2)宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。  

  3)宏定义必须写在函数之外,其作用域为宏定义命令起到源程序结束。

  4)宏名在源程序若用引号括起来,则预处理程序不对其进行宏代换。

  5)宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。

  6)"输出格式"作宏定义,可以减少书写麻烦。

 

 

4.带参宏定义与自定义函数的区别?

  1)在带参宏定义中,形式参数不分配内存单元,因此不必作类型定义,而宏调用中的实参有具体的值,要用它们去代换形参,因此必须作类型说明。而在函数中,形参与实参是两个不同的量,各有自己的作用域,调用时要把实参值赋予形参,进行"值传递"。而在代参宏中,只是符号代换,不存在值传递的问题。

  2)在宏定义中的形参是标识符,而宏调用中的实参可以是表达式。

 

 

5.文件包含的功能是什么?

  文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。

 

 

6.文件包含需要注意什么?

  1)包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。

  2)一个include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。

  3)文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。

 

 

7.结构体和数组的的比较?

  1)都由元素组成。

  2)各个元素在内存中的存储空间是连续的。

  3)数组中各个元素的类型相同,而结构体中的各个元素的数据类型可以不相同。

 

 

8.#definetypedef 的区别?

 #define定义 可读 的常量和一些宏语句,而typedef则常用来定义关键字,冗长的类型的别名。宏定义只是简单的字符串代换(原地扩展),而typedef则不是原地扩展,它的新名字具有一定的封装性,以致新命名的标识符具有更容易定义变量的功能。

 

 

9.结构体和联合体的区别?

  结构体和联合体都是由多个不同的数据类型成员组成的,但在任何同一时刻,联合体中只存放了一个被选中的成员,而结构体的所有成员都存在,在结构体中,各成员都占有自己的内存空间,他们是同时存在的,一个结构体变量的总长度等于所有成员长度之和。在联合体中,所有成员不能同时占用它的内存空间,他们不能同时存在,联合体变量的长度等于最长的成员的长度。

 

 

10.什么是位段?

  位段是以位为单位来定义结构体(或联合体)中的成员变量所占的空间,含有位段的结构体(或联合体)称为位段结构,采用位段结构既能够节省空间,又方便操作。

  一般格式:

  type  [var]: digits

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的体育馆管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此体育馆管理系统利用当下成熟完善的SpringBoot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线选择试题并完成答题,在线查看考核分数。管理员管理收货地址管理、购物车管理、场地管理、场地订单管理、字典管理、赛事管理、赛事收藏管理、赛事评价管理、赛事订单管理、商品管理、商品收藏管理、商品评价管理、商品订单管理、用户管理、管理员管理等功能。体育馆管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:体育馆管理系统;SpringBoot框架;Mysql;自动化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值