更多课程 选择中心

C/C++培训
达内IT学院

400-111-8989

关于C语言预处理面试题有哪些?

  • 发布:C++培训
  • 来源:C++职场
  • 时间:2020-04-01 17:32

本文是作者收集了一些关于C语言预处理面试题,此题可以为正在找工作的同事们提供很好的帮助。所以今天就写篇推送给大伙好好讲讲这写关于预处理的面试题,也让我们的学习尽可能和实际岗位需求接轨,话不多说了,请看题:

问题1:什么是预编译?何时需要预编译?

答:

预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。.

何时需要预编译:

1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

问题2:写一个“标准”宏,这个宏输入两个参数并返回较小的一个

答:#define MIN(x, y) ((x)<(y)?(x):(y)) //结尾没有;

问题3:#与##的作用?

答:#是把宏参数转化为字符串的运算符,##是把两个宏参数连接的运算符。

例如:

#define STR(arg) #arg 则宏STR(hello)展开时为”hello”

#define NAME(y) name_y 则宏NAME(1)展开时仍为name_y

#define NAME(y) name_##y 则宏NAME(1)展开为name_1

#define DECLARE(name, type) typename##_##type##_type,

则宏DECLARE(val, int)展开为int val_int_type

问题4:如何避免头文件被重复包含?

答:例如,为避免头文件my_head.h被重复包含,可在其中使用条件编译:

#ifndef _MY_HEAD_H

#define _MY_HEAD_H /*空宏*/

/*其他语句*/

#endif

以上关于C语言预处理面试题及答案分享给大家,也希望大家在面试过程中找到自己所喜欢的企业。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:一名优秀的C++人员是怎么炼成的?
下一篇:关于C语言关键字面试题有哪些?

几个C语言经典基础算法(含代码)

不得不知道的八个C语言面试题

C/C++后台开发面试难不难,京东二面

C/C++后台开发面试难不难,来看看京东

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省