硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4451|回复: 0
收起左侧

[MDK] 使用MDK时包含头文件双引号和尖括号的区别以及选项No Auto Include的作用

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2015-11-5 09:55:27 | 显示全部楼层 |阅读模式
举例:

#include  <stdarg.h>
#include  <stdio.h>
#include  <stdlib.h>
#include  <math.h>


#include "bsp_uart_fifo.h"
#include "bsp_led.h"
#include "bsp_timer.h"
#include "bsp_key.h"
<>优先在系统目录下找,对于MDK来说就是优先在MDK的安装目录里面查找,如果找不到就去用户所创建的工程里面找。
""  优先在当前目录下找,对于MDK来说就是优先在用户所创建的工程里面找,如果找不到就去MDK的安装目录里面查找.
------------------------
实际应用中推荐的规范写法是:
用户自己写的.h文件,我们就用“”进行保护,而调用系统库文件的时候就用<>进行保护。
------------------------
如果大家在使用中不注意这个问题的话,有时候很多麻烦的问题就来了,根本原因就是MDK的安装目录里面
也有芯片厂商库文件和其它的一些源码文件(比如RTX操作系统)。可以想象,比如你采用下面的定义方式
#include <STM32F10x.h>
那么MDK就会优先从安装目录里面去查找,如果你升级了固件库,但是MDK安装目录里面的是低版本的固件库,
那么问题就来,你此时使用的固件库头文件是低版本的,而源码文件是高版本的。
------------------------------------------------
但是大家在使用的时候觉得注意这个很麻烦,最好的解决办法就是把MDK中No Auto Includes选项选上
1.png

选上了这个选项以后,就不会从MDK安装目录里面搜索头文件了,除了系统头文件,比如stdio.h,  string.h等
1.png


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 18:47 , Processed in 0.270199 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表