linux-4.4.1/__glue()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#tb527564]
#backlinks
*説明 [#yb37f47e]
-パス: [[linux-4.4.1/arch/arm/include/asm/glue.h]]
-アーキテクチャ名と関数名を連結させるマクロ。
--____glue() の呼び出しは無駄に見えるが、__glue(a,b) a##b...
#define cat(a, b) a##b
#define _xcat(a, b) a##b
#define xcat(a, b) _xcat(a, b)
int main()
{
cat(aaa,bbb); //aaabbb
//cat(cat(aaa,bbb),ccc); //Error!
xcat(aaa,bbb); //aaabbb
xcat(xcat(aaa,bbb),ccc); //aaabbbccc
return 0;
}
$ gcc -E a.c -o a.out
a.c:9:17: error: pasting ")" and "ccc" does not give a v...
cat(cat(aaa,bbb),ccc); //Error!
^
a.c:1:19: note: in definition of macro ‘cat’
#define cat(a, b) a##b
^
--__glue(aaa, _bbb) のように呼び出せば aaa_bbb というトー...
--ARM の実装では _CACHE と共に使われることが多いようだ。
--[[linux-4.4.1/_CACHE]]
**引数 [#n3845ad4]
-name
--アーキテクチャ名
-fn
--関数名
**返り値 [#x226613e]
-name と fn を連結したトークン
--関数ではないため、値は返らない
**参考 [#j2b23f5a]
*実装 [#ua374829]
#define __glue(name,fn) ____glue(name,fn)
-____glue() を呼ぶだけ。
--[[linux-4.4.1/____glue()]]
*コメント [#la5d556a]
終了行:
*参照元 [#tb527564]
#backlinks
*説明 [#yb37f47e]
-パス: [[linux-4.4.1/arch/arm/include/asm/glue.h]]
-アーキテクチャ名と関数名を連結させるマクロ。
--____glue() の呼び出しは無駄に見えるが、__glue(a,b) a##b...
#define cat(a, b) a##b
#define _xcat(a, b) a##b
#define xcat(a, b) _xcat(a, b)
int main()
{
cat(aaa,bbb); //aaabbb
//cat(cat(aaa,bbb),ccc); //Error!
xcat(aaa,bbb); //aaabbb
xcat(xcat(aaa,bbb),ccc); //aaabbbccc
return 0;
}
$ gcc -E a.c -o a.out
a.c:9:17: error: pasting ")" and "ccc" does not give a v...
cat(cat(aaa,bbb),ccc); //Error!
^
a.c:1:19: note: in definition of macro ‘cat’
#define cat(a, b) a##b
^
--__glue(aaa, _bbb) のように呼び出せば aaa_bbb というトー...
--ARM の実装では _CACHE と共に使われることが多いようだ。
--[[linux-4.4.1/_CACHE]]
**引数 [#n3845ad4]
-name
--アーキテクチャ名
-fn
--関数名
**返り値 [#x226613e]
-name と fn を連結したトークン
--関数ではないため、値は返らない
**参考 [#j2b23f5a]
*実装 [#ua374829]
#define __glue(name,fn) ____glue(name,fn)
-____glue() を呼ぶだけ。
--[[linux-4.4.1/____glue()]]
*コメント [#la5d556a]
ページ名: