C语言宏定义高频面试题及详细答案(实战版).docxVIP

  • 2
  • 0
  • 约3.4千字
  • 约 6页
  • 2026-10-12 发布于河北
  • 举报

C语言宏定义高频面试题及详细答案(实战版).docx

C语言宏定义高频面试题及详细答案(实战版)

本套面试题涵盖宏定义基础语法、预处理机制、常见坑点、经典笔试题、工程实战用法,全部为互联网大厂、嵌入式、后端开发高频真题,答案结合实际开发场景讲解,通俗易懂,无书面化空话。

一、基础概念面试题

1、什么是宏定义?宏的执行时机是什么?

答案:

宏定义是C语言预处理阶段的替换指令,用#define关键字声明,核心作用是实现代码文本的批量替换。

宏的执行时机:预处理阶段,早于编译、汇编、链接全过程。

简单来说:编译器正式编译代码前,会先扫描所有宏,将代码中对应的宏名,原样替换为宏定义的文本内容,不做语法检查、不计算数值、不分配内存。

区别于变量:宏是纯文本替换,无内存占用;变量是编译阶段分配内存,有数据类型。

2、宏定义和const常量的区别?(高频必考)

答案:

1、执行阶段不同:宏在预处理阶段文本替换;const常量在编译阶段生效。

2、类型检查不同:宏无数据类型,不做语法校验,容易产生隐性bug;const有明确数据类型,编译器会做类型检查。

3、内存占用不同:宏不占用内存,纯文本替换;const常量会占用只读数据段内存。

4、作用域不同:宏默认全局生效,可通过#undef取消;const常量遵循变量作用域规则(局部/全局)。

5、可否修改:宏无法修改;const常量在代码层面禁止修改,但部分场景可通过指针强制修改内存值。

实战总结:固

文档评论(0)

1亿VIP精品文档

相关文档