#define只有宏名定义是什么意思!

#ifndef__STM32F10x_CONF_H#define__STM32F10x_CONF_H#include"stm32f10x_type.h"#define_G... #ifndef __STM32F10x_CONF_H
#define __STM32F10x_CONF_H
#include "stm32f10x_type.h"
#define _GPIO
#define _GPIOA
#define _GPIOB
#define _GPIOC
#define _GPIOD
#define _GPIOE
#define _GPIOF
#define _GPIOG
#define _AFIO
#endif
前面两行我懂,可是后面几个#define是什么意思?只有宏名,又不是定义头文件?求高手帮助。
展开
 我来答
信息工程125
2013-04-15 · 超过10用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:29.1万
展开全部
#include "stm32f10x_type.h"
意思是包含了一个名字为stm32f10x_type.h的头文件,这个文件应该在同一个压缩包里面找得到。#define _GPIO
意思是定义了GPIO管脚有输入输出功能
#define _GPIOA
#define _GPIOB
#define _GPIOC
#define _GPIOD
#define _GPIOE
#define _GPIOF
#define _GPIOG
这几句的意思是把ABCDEFG这些管脚的输入输出功能定义了,至于是输入还是输出要看你的其他部分代码了。
AFIO
意思是如果在你的程序中,某些外设用的是复用IO口,就必须开该复用时钟。
从以上看来这段程序应该是一块开发板的部分代码吧~
longinus_dean
推荐于2018-03-20 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1513万
展开全部
一般来说这样空的宏都是为了某些手段的,例如跨平台,比如说在windows下我让a赋值为10,在linux下要让a赋值为20,那么就可以这么写

#ifdef WINDOWS
a = 10;
#endif
#ifdef LINUX
a = 20;
#endif;

这样我只要在某个地方定义一个#define WINDOWS或者#define LINUX就可以在跨平台的情况下采取不同的策略了

当然了就算在一个平台下也有各种用法,总而言之语言是死的,人是活的,具体为什么这么做要看具体完成了什么功能
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖糖寳寳
2015-09-11 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3867万
展开全部
1. 这里为了防止当你的程序中出现 typename时, 如果编译器不支持,就把typename换成空的。
2. 宏名和宏值是分开的,定义时有就有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jdjijsvdklsj
2012-02-10 · 超过15用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:59.6万
展开全部
为了移植
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式