linux宏定义
㈠ linux内核宏定义常规
1 _LINUX_KERNEL_H是头文件的标记宏,使用它避免同一个头文件被多次include
2 _ _attribute是GUN C的特别支持
3 勤快点,搜索一下可以找到一大堆资料
㈡ 求助:linux信号处理的默认函数宏定义怎么理解
一、Libevent简介 libevent是一个基于事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。 特点: 事件驱动,高性能; 轻量级,专注于网络,不如ACE那么臃肿庞大,只提供了简单的网...
㈢ Linux的keypad函数中的宏定义#define LOCAL_ESCAPE_KEY 27为什么是27
你说的应该是嵌入式Linux系统里的宏定义吧。这些都是关于ARM寄存器地址的定义,比较底层了。 每个宏定义上面都有注释的,搜索注释里的关键词, LDR/STR (字) LDRH/STRH (无符号半字)
㈣ LINUX C语言 宏定义
如果直接传整型数字进去默认应该是int吧
所以展开应该是
int _a = (2);
int _b = (3);
_a>_b?_a:_b;
如果在使用宏的时候, a和b的类型是自己定义的类型 例如:
salary a;
salary b;
现在要调用宏来比较他俩的大小
salary n;
n = max(a,b);<==>(salary _a = (a);    salary _b = (b);  _a>_b?_a:_b;)
 
这样的求最大数的宏是目前最安全的写法;
㈤ linux 宏定义
环境变量( OS,MACHTYPE..)
或是用uname -a命令,
可以得到硬件,操作系统,内核,处理器等信息.
㈥ 关于linux中的几个宏定义,不知道什么意思请高手指教
你说的应该是嵌入式Linux系统里的宏定义吧。这些都是关于ARM寄存器地址的定义,比较底层了。
每个宏定义上面都有注释的,搜索注释里的关键词,
LDR/STR (字)
LDRH/STRH (无符号半字)
㈦ Linux内核根目录中的配置文件.config中包含了许多宏定义,
一、Linux内核的配置系统由三个部分组成,分别是: 
    1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则; 
    2、配置文件(config.in(2.4内核,2.6内核)):给用户提供配置选择的功能; 
    3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig)。这些配置工具都是使用脚本语言,如 Tcl/TK、Perl 编写的(也包含一些用 C 编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写 Makefile 和配置文件就可以。 
二、Make menuconfig过程分析 
    1、scripts文件夹存放的是跟make menuconfig配置界面的图形绘制相关的文件,我们作为使用者无需关心这个文件夹的内容 
    2、读取arch/arch/$ARCH/Kconfig以及各子目录下的Kcondig文件,生成配置条目。 
        $ARCH由linux内核根目录下的makefile文件决定 
        ARCH            ?= arm 
        CROSS_COMPILE   ?= arm-linux- 
        Kconfig文件中为配置信息的宏定义,与我们在make menuconfig图形界面看到的信息一致。 
        例如: 
        config CPU_S3C2410_DMA 
                bool 
                depends on S3C2410_DMA && (CPU_S3C2410 || CPU_S3C2442) 
                default y if CPU_S3C2410 || CPU_S3C2442 
                help 
                   DMA device selection for S3C2410 and compatible CPUs 
    因此,Kconfig文件很重要的作用就是:定义配置宏、相关依赖关系、帮助信息 
    3、读取内核根目录下.config文件,生成配置选项:[*]编译进内核 [M]编译为模块 [ ]不编译 
        arch/arm/configs/文件夹下存放了一些配置模板 
        我们可以通过cp /arch/arm/configs/xx_defconfig .config来使用这些配置模板 
        通过图形界面变更配置选项会自动更新到.config文件中 
        make disclean 会删除.config 
  4、编译过程根据.config生成 Linux内核根目录下的 include/config/auto.conf文件 
        CONFIG_EEPROM_93CX6=m 
        CONFIG_DM9000=y 
        根目录Makefile以及子目录的Makefile根据auto.conf生成编译条件 
        obj-$(CONFIG_DM9000) += dm9000.o //obj-m += dm9000.o 
   5、编译过程根据.config生成Linux内核根目录下的 include/linux/autoconf.h文件 
        .config 或 auto.conf 中定义要编译为 m 模块的项,如: 
        CONFIG_DEBUG_NX_TEST=m 
        在 autoconf.h 中会被定义为: 
        #define CONFIG_DEBUG_NX_TEST_MODULE 1 
        
        .config或auto.conf 中定义为编译为 y 的选项,如: 
        CONFIG_DM9000= y 
        在 autoconf.h 中会被定义为: 
        #define CONFIG_DM9000 1 
        autoconf.h中是.config或者auto.conf中配置信息的另一种体现形式,它是站在源码的角度,供源码使用的C语言宏定义。 
   6、总结 
        我们在使用make menuconfig时,首先会确定架构arch,然后读取arch目录的Kconfig中的配置宏定义,生成编译条目,然后读取Linux内核根目录下的.config选项, 将.config中的配置信息显示在图形界面上[*] [M] or []。我们在图形界面中更改配置选项会自动保存到.config文件中。编译过程根据.config随后生成auto.conf文件,它决定了makefile中各个文件的编译类型,静态编译进内核、编译成模块、不编译;同时生成autoconf.h,它以C语言宏定义的形式表达了 各个文件是否被编译,源码中会判断某文件是否被编译进行不同的处理。 
三、将自定义文件添加进内核配置系统 
       1、修改文件目录下Kconfig文件 
            添加: 
             config HELLO 
                    tristate "just a test hello" 
                    default y 
                    ---help--- 
                      This is a test 
             //tristate 或 bool 表示可选择种类数量3[*][M][ ]、2 
             // "just a test hello"将作为标题显示在配置的图形界面 
       2、修改文件目录下makefile文件 
            obj-$(CONFIG_HELLO)             += hello_drv.o 
       3、make menuconfig 我们会在字符设备驱动的界面看到 ust a test hello 并且默认编译进内核
       4、make编译内核发现 
            autoconfig.h  自动添加    #define CONFIG_HELLO 1 
            auto.conf        自动添加    CONFIG_HELLO=y
㈧ linux内核中的这个宏定义代码是什么意思啊
希望能帮到你,你展开看一下。
大概意思是,将AR_QUIET1的ACK_CTS_ENABLE 位 写1 或0,
读出AR_QUIET1的ACK_CTS_ENABLE 位的值,
㈨ linux C语言 宏定义的问题
如果直接传整型数字进去默认应该是int吧
所以展开应该是
int
_a
=
(2);
int
_b
=
(3);
_a>_b?_a:_b;
如果在使用宏的时候,
a和b的类型是自己定义的类型
例如:
salary
a;
salary
b;
现在要调用宏来比较他俩的大小
salary
n;
n
=
max(a,b);<==>(salary
_a
=
(a);
salary
_b
=
(b);
_a>_b?_a:_b;)
这样的求最大数的宏是目前最安全的写法;
㈩ Linux中no matching function for call 宏定义
宏定义是C++编译.cpp文件,出现错误。
解决方法:在类中添加一个swap的函数模板。注意:另外出现cannotbeoverloaded是说明不能重载,需要重新写一个函数进行区分。
