野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11189|回复: 4

条件编译问题(#define __LED_H的作用是什么?)

[复制链接]
发表于 2015-1-27 08:38:58 | 显示全部楼层 |阅读模式
今天偶然发现,不明白#define __LED_H的意思,,,,
YVMX0CEEL6AH3{6_R0$@K2N.png
回复

使用道具 举报

发表于 2015-1-27 09:05:47 | 显示全部楼层
防止头文件重复包含
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 09:15:41 | 显示全部楼层
flyleaf 发表于 2015-1-27 09:05
防止头文件重复包含

你的意思是这个条件编译里面的内容只对应 “LED.h”?
回复 支持 反对

使用道具 举报

发表于 2015-1-27 10:15:52 | 显示全部楼层
楼主可以读一下这个哦:
http://blog.sina.com.cn/s/blog_5fd4779a01012s7l.html
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:18:14 | 显示全部楼层
本帖最后由 11kxmx 于 2015-1-27 15:31 编辑
浮在蓝天 发表于 2015-1-27 09:15
你的意思是这个条件编译里面的内容只对应 “LED.h”?


看字面意思就知道了:如果没有定义xxx(头文件)
              那么定义xxx(头文件)
如果这个头文件在以前已经被包含过,条件就不成立,就不会再重新定义了
  相反如果该头件以前没有被包含过,条件就成立,可以定义这个头文件了
一般来说,在同一个源文件中是不会多次包含同一个头文件的,但模块化编程时
一个完整的程序可能是由许多源文件和头文件组成的,这些模块中可能会包含有相同的头文件,有了这个语句
多次包含就被当作一次处理了  
否则你会发现很多 xxx 重复定义 编译通不过
学51单片机 凡所有的程序都有#include<reg51.h>
如果有两个以上的C文件,那么它们肯定都有这一句,如果没有防重复包含处理,把它们湊在一块儿编译时就会出错 
相反如果某一个源文件里没有#include<reg51.h>这一句,编译还是通不过
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 02:41 , Processed in 0.036071 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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