C语言进阶新手常见难题解疑

举报
kitty787 发表于 2021/06/30 21:28:21 2021/06/30
【摘要】 1.头文件<>和“”的区别:头文件#include <> :表示引用标准库头文件,编译器会从系统配置的库环境中去寻找。头文件#include "":一般表示用户自己定义使用的头文件,编译器默认会从当前文件夹中寻找,如果找不到,则到系统默认库环境中去寻找。2.哪些文件用<>,哪些用””?C语言本身自带的头文件用<>,例如stdio.h、math.h;我们自己编写的头文件用””,例如drive....

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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。