看不懂代码?——难点解惑篇
新手常见问题解答
1.头文件<>和“”的区别:
头文件#include <> :表示引用标准库头文件,编译器会从系统配置的库环境中去寻找。
头文件#include "":一般表示用户自己定义使用的头文件,编译器默认会从当前文件夹中寻找,如果找不到,则到系统默认库环境中去寻找。
2.哪些文件用<>,哪些用””?
C语言本身自带的头文件用<>,例如stdio.h、math.h;
我们自己编写的头文件用””,例如drive.h、delay.h(设备厂商公司--百科荣创自行编写的)
3.为什么drive.h文件里需要#ifndef、#define和#endif?
为了防止头文件被重复定义,降低工程的编译效率,代码解释如下:
#ifndef __DRIVE_H_ //如果drive.h没有被定义过,就执行下面的语句(ifndef→if not define :如果没有定义)
#define __DRIVE_H_
程序段1
#endif //结束定义
4.是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码?
不是一定要加,但是不管怎样,用#ifnde xxx #define xxx #endif或者其他方式避免头文件重复包含,只有好处没有坏处。个人觉得培养一个好的编程习惯是学习编程的一个重要分支。
5.我们的前进、左转等等函数都在drive.c里写的,当main.c对这些函数进行调用时,好像跟drive.h没有关系,为什么要将他们的函数名都放在drive.h里?
我们main函数在对这些前进、后退、左转等等函数调用时,确实只会跳转到drive.c里去执行。但是drive.h的这些语句并不是在主函数调用前进函数时才用到,而是在代码执行之前的预编译环节已经用过了。我们之前学过函数声明,主调函数写在被调函数之前要进行函数声明。而现在,我们将函数声明语句写在了drive.h里,写在两个地方的作用相同——都是进行函数声明,这样就无需在主调函数里进行函数声明了。
5.0x06是什么?
0x06就是16位int型数据,对应十位数字6
- 点赞
- 收藏
- 关注作者
评论(0)