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是說明不能重載,需要重新寫一個函數進行區分。
