首页 > 其他分享 >对于条件编译 #ifndef __LED_H的理解

对于条件编译 #ifndef __LED_H的理解

时间:2023-04-06 18:12:27浏览次数:39  
标签:__ led 头文件 ifndef LED 声明 定义

一、下划线“__”属于编程风格的内容,对程序没有影响。不用下划线也可以,用几个下划线也由个人习惯

二、其实本质是一个宏名。由此我们可以防止发生重复定义或声明

假设你的头文件名为led.h,根据习惯,我们声明一个宏__LED_H对应这个头文件,在头文件中开始的地方和结尾的地方加上对__LED_H的声明和判断,头文件led.h如下:

#ifndef __LED_H
#define __LED_H

……(头文件内容)

#endif

意思就是,如果led.h第一次被引用,那么__LED_H没有被定义,所以#define __LED_H和#endif 中间的头文件内容就被执行,也就是头文件内容被定义。那么如果led.h第二次被引用,由于__LED_H已经被第一次引用时定义了,所以不会执行#define __LED_H和#endif 中间的头文件内容,也就是不会重复定义头文件内容。

这样,可以避免头文件的内容被重复定义。头文件中定义的变量不存在重复声明或定义。
————————————————
版权声明:本文为CSDN博主「吮指原味张」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mahoon411/article/details/107975549

标签:__,led,头文件,ifndef,LED,声明,定义
From: https://www.cnblogs.com/fengzhihean/p/17293684.html

相关文章

  • 20230406-Python-if判断-day4
    条件语句4月6场景假设:网吧上网去⽹吧进⻔想要上⽹必须做的⼀件事是做什么?(考虑重点)为什么要把身份证给⼯作⼈员?是不是就是为了判断是否成年?是不是如果成年可以上⽹?如果不成年则不允许上⽹?其实这⾥所谓的判断就是条件语句,即条件成⽴执⾏某些代码,条件不成⽴则不执⾏这些......
  • Dlg_GetNeighbourFaces ui 逻辑
    QGridLayout*gridLayout_3;QGroupBox*groupBox;QFormLayout*formLayoutformLayout->setWidget(1,QFormLayout::LabelRole,labelfillet);formLayout->setWidget(2,QFormLayout::SpanningRole,treeView);formLayout->setWidget(3,QFormLayout::LabelRole,......
  • 线性部分:古典解1:极值定理及其应用
    线性部分:古典解1-极值定理及其应用目录线性部分:古典解1-极值定理及其应用1.定义2.古典解的极值原理弱极值原理强最大值定理.3.先验估计:Drichlet边值条件4.先验估计:Robin和Nueman边值条件参考文献1.定义对于二阶的线性偏微分算子,一般有以下两种形式:散度型形式(divergence)......
  • Python学习——Day1
      学习python与C语言相似,第一件事也是输出一个”HelloWorld"。  但是相比C语言,python的输出要简洁好多,他没有换行符\n也能自动换行,print()函数里字符串无论是使用单引号还是双引号结果都能正常输出且输出结果一样。  第二个就是注释,python则与C语言不同,这里用到......
  • 运维Ansible自动化工具概述
    运维的工作内容安装系统:pxe、kickstart、cobbler、imagetemplate安装应用、配置应用、启动应用(服务):puppet、saltstack、chef发布程序:puppet、saltstack、chef监控(服务器、系统、应用、程序):zabbix程序发布灰度发布金丝雀发布ansible解决的问题:批量安装应用、配置应用、启动应用批量......
  • OneDrive实现电脑文件分享与协同
      本文介绍基于OneDrive网盘实现电脑大文件共享、协同办公的方法。1前言  作为网盘的重度用户,在学习、工作、生活中可以说少不了与各类云盘打交道。在这一过程中,也慢慢了解到不同网盘软件的特点,从而逐渐结合其各自的特点,在不同的应用场合选择不同的网盘软件。  在日常运......
  • ChatGPT大规模封锁亚洲地区账号
    我是卢松松,点点上面的头像,欢迎关注我哦!在毫无征兆的情况下,从3月31日开始OpenAI大规模封号,而且主要集中在亚洲地区,特别是ip地址在台湾、日本、香港三地的,命中率目测40%。新注册的账号、Plus也不好使了。如果你登陆的时候出现“提示无法加载历史信息”或“输入框输入内容无法发送”,账......
  • 【Python从零到壹】Python条件语句详解
    欢迎大家来到互联网老辛的专栏《Python从零到壹》,在这里我将分享约300篇Python系列文章,所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。从事教学工作以来,越来越觉得时间的宝贵,每届学生都要讲重复的课,......
  • 数组里有n个元素,取第一个元素和最后一个元素时间差会很大吗?
    其实呢,不要被这个所迷惑了,数组里面呢无论有多少个元素,它都是通过key值去精确查找哈希表的过程,所以呢,它们所消耗的时间呢,基本就是差不多的,当然,可能会有一些差异,但这个差异的话,可以忽略不计。......
  • 关于python安装模块之后pychram仍然提示没有安装模块的问题
    项目场景:如图所示:需要安装的包已经安装好,但是到了pycharm里就没法使用,相信很多小伙伴遇到过这个问题。原因分析:遇到这个问题的主要原因是你的电脑里安装了两个pycharm解释器,你安装后,实际上是安装到了你电脑的Python3而非pycharm解释器。解决方案:所以我们可以在pycharm里面直......