1. #if IS_ENABLED(CONFIG_XXX)

  1.1 IS_ENABLED的定义如下:

    

    /*
    * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',
    * 0 otherwise.
    */
    #define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))

  1.2 从以上注释来看,就是如果CONFIG_XXX被设置为'y'或'm'的时候,IS_ENABLED(CONFIG_XXX)就等于1

2. #ifdef CONFIG_XXX

  表示只要定义了CONFIG_XXX就行,不论它定义成了什么东西,也就是无论定义的真假

3. 总结

  #ifdef只关心宏是否被定义,而#if关心被定义的宏是否是真。

转载于:https://www.cnblogs.com/dakewei/p/11326453.html

linux内核中#if IS_ENABLED(CONFIG_XXX)与#ifdef CONFIG_XXX的区别相关推荐

  1. Linux中文件描述符1,linux内核中的文件描述符(一)--基础知识简介

    原标题:linux内核中的文件描述符(一)--基础知识简介 Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blo ...

  2. Linux 内核中的 GCC 特性(zz)

    from:http://www.ibm.com/developerworks/cn/linux/l-gcc-hacks/ GCC 和 Linux 是出色的组合.尽管它们是独立的软件,但是 Linux ...

  3. Linux内核中的内存屏障(转)

    转自:http://www.linuxidc.com/Linux/2011-10/44623.htm 前言 之前读了关于顺序一致性和缓存一致性讨论的文章,感觉豁然开朗.对linux内核中出现的种种同步 ...

  4. Linux内核中的常用宏container_of其实很简单【转】

    转自:http://blog.csdn.net/npy_lp/article/details/7010752 开发平台:Ubuntu11.04 编 译器:gcc version 4.5.2 (Ubun ...

  5. linux内核定时器死机,浅析linux内核中timer定时器的生成和sofirq软中断调用流程

    浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(& ...

  6. linux内核中TCP接收的实现

    linux内核中TCP接收的实现入口函数是tcp_v4_rcv 1. 数据包检查处理 一开始做一些数据包详细检查处理,一旦出错,可能导致内核挂掉 int tcp_v4_rcv(struct sk_bu ...

  7. Linux 内核中的宏定义

    Linux 内核中的宏定义 rtoax 日期 内核版本:linux-5.10.13 注释版代码:https://github.com/Rtoax/linux-5.10.13 __attribute__ ...

  8. Linux内核中的同步原语:自旋锁,信号量,互斥锁,读写信号量,顺序锁

    Linux内核中的同步原语 自旋锁,信号量,互斥锁,读写信号量,顺序锁 rtoax 2021年3月 在英文原文基础上,针对中文译文增加5.10.13内核源码相关内容. 1. Linux 内核中的同步原 ...

  9. Linux 内核中的数据结构:双链表,基数树,位图

    Linux 内核中的数据结构 rtoax 2021年3月 1. 双向链表 Linux 内核自己实现了双向链表,可以在 include/linux/list.h 找到定义.我们将会从双向链表数据结构开始 ...

最新文章

  1. BAT新风向标:程序员有福利了!
  2. 基于图像的三维模型重建——基础介绍
  3. CRM脱机下使用说明_海天
  4. scp和ssh如何连接指定端口的远程主机
  5. MySQL 增加、更新、删除
  6. ACM团队周赛题解(2)
  7. Javascript:一个屌丝的逆袭之路
  8. Mysql的备份与恢复类型
  9. 从用户的角度看解决方案
  10. Introduction to Computer Networking学习笔记(四):路由转发表及转发规则
  11. 在Ubuntu 将PHP5升级到PHP7.0 PHP7.1
  12. 【数值分析】python实现复化高斯积分
  13. 《Netty实战》总结
  14. oracle数据布尔,Oracle中的布尔字段
  15. 一个简单的Appium测试(Python语言)
  16. 错误:is quoted with which must be escaped when used within the value
  17. NASA丨登陆火星六大前沿技术
  18. 计算机网络四交换技术,计算机网络数据交换技术发展
  19. 如何挑选最适合自己的车
  20. Centos7安装并使用Oracle11g数据库

热门文章

  1. PDF Shaper Pro v12.8 全能PDF工具箱中文版
  2. Android11 添加输入法并且设置默认
  3. 英雄不问出处 美女不问归途
  4. Hexo 魔改主题 butterfly
  5. 数据库架构中的基本概念
  6. oracle cte 内存,执行Oracle CTE
  7. springboot创建及使用多线程的几种方式
  8. 李飞飞对谈赫拉利:AI演变成全球科技竞争,会比核竞赛还要可怕?
  9. 如何把微课应用到计算机课堂,如何把微课运用于小学数学教学之中
  10. 5 天 将近 1500 Star 的 Flutter UI 模板