1.4 C/C++ 预处理

一、#error 的目的

#error 预处理指令的作用是,编译程序时,只要遇到 #error 就会生成一个编译错误提示消息,并停止编译。其语法格式为:#error error-message

#ifdef XXX
...
#error "XXX has been defined"
#else
#endif

二、typedef 和 #define 有什么区别?

1、#define 是预处理命令,只是在预处理阶段进行简单机械的字符串替换,不做正确性检查;typedef 在编译时被处理,具有类型检查功能,如:

#define int_ptr (int*)
int_ptr i,j  //这样就会报错,相当于 int *i,int j
typedef int* int_ptr
int_ptr i,j  //不会报错,相当于 int *i,*j

2、typedef 只是为定义类型起别名;#define 可以为变量取别名,定义常量、变量、编译开关。

3、作用域不同,#define 没有作用域,只要之前定义过,后面都可使用,而 typedef 有作用域。

void fun(){
    #define A int
}
void gun(){
    //这里也可以使用A,因为宏替换没有作用域,但如果上面用的是 typedef,那这里就不能用 A,不过,一般不在函数内使用 typedef
}

三、#include <filename. h> 和 #include "filename. h" 有什么区别?

对于 include <filename. h>,编译器先从标准库路径开始搜索 filename.h,使得系统文件调用较快。而对于 #include "filename.h",编译器先从用户的工作路径开始搜索 filename.h,然后去寻找系统路径,使得自定义文件较快。

四、头文件中可以定义静态变量吗?

不可以。如果在头文件中定义静态变量,则每个包含头文件的 c 文件都会包含一个静态变量的独立副本,在一个 c 文件对静态变量修改,不会导致另一个 c 文件的静态变量修改,导致逻辑混乱。

五、头文件中定义普通变量可能引发重复定义错误,只能声明

//可以这样
// good_example.h
#ifndef GOOD_EXAMPLE_H
#define GOOD_EXAMPLE_H
extern int globalVar;
#endif

// good_example.c
#include "good_example.h"
int globalVar = 10;

六、写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个?

#define MIN(A,B) ((A) <= (B) ? (A) : (B))

七、不使用流程控制语句,如何打印出1~1000的整数?

#include <stdio. h>
#define A(x)x;x;x;x;x;x;x;x;x;
int main (){
    int n=0;
    A(A(A(printf("%d", ++n);
    return 0;
}

C++/嵌入式开发 秋招面经 文章被收录于专栏

一名985硕,在25年秋招中斩获多个C++/嵌入式开发Offer。本专栏将分享我的面经,涵盖C/C++、操作系统、计算机网络、ARM体系与架构、Linux应用/驱动开发、Qt、通信协议及开发工具链等核心内容。

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
24929次浏览 492人参与
# 中国电信笔试 #
31111次浏览 283人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14168次浏览 209人参与
# 你的实习产出是真实的还是包装的? #
18854次浏览 330人参与
# 如果秋招能重来,我会____ #
96703次浏览 500人参与
# 春招至今,你的战绩如何? #
60153次浏览 546人参与
# 厦门银行科技岗值不值得投 #
7501次浏览 186人参与
# i人适合做什么工作 #
36928次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79522次浏览 219人参与
# 哪些公司真双非友好? #
69209次浏览 287人参与
# 金三银四,你的春招进行到哪个阶段了? #
21573次浏览 277人参与
# 找AI工作可以去哪些公司? #
7714次浏览 186人参与
# 从事AI岗需要掌握哪些技术栈? #
7721次浏览 251人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339935次浏览 2165人参与
# 面试尴尬现场 #
220770次浏览 861人参与
# 五一之后,实习真的很难找吗? #
102806次浏览 584人参与
# 你做过最难的笔试是哪家公司 #
30253次浏览 193人参与
# 你小时候最想从事什么职业 #
159844次浏览 2072人参与
# 应届生第一份工资要多少合适 #
20487次浏览 84人参与
# 阿里笔试 #
176516次浏览 1302人参与
# 一张图晒出你司的标语 #
3835次浏览 72人参与
# 面试被问期望薪资时该如何回答 #
382478次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务