/
最近
.rdf
追記
編集
設定
本棚
翌日へ
前日へ
脳
l
o
g
[
2
0
1
2
1
2
1
3
]
2
0
1
2
年
1
2
月
1
3
日
(
木
)
「
L
i
n
u
x
K
e
r
n
e
l
の
L
i
n
k
e
d
L
i
s
t
の実装が面白い件
-
愛と勇気と缶ビ
ール
」
■残念ながら見たことのある実装でした
(
そり
ゃあソ
ースが有名すぎるから
)
。
なんでそういう変則的な実装が求められたのかが知りたいね
。
リ
ス
トの定義が使用例
(
アイ
テ
ム型
)
ごとに増えていくのを嫌
ったんだろう
か
。
マクロでは見かけは統一できてもコ
ー
ドサイズが増えそう?
C
+
+
だと
、
マクロの代わりが
L
i
s
t
<
i
t
e
m
>
みたいな素直なテンプレ
ー
トにな
って
、
この
L
i
n
k
e
d
L
i
s
t
のようなのは
T
h
i
n
T
e
m
p
l
a
t
e
(
e
n
.
w
i
k
i
b
o
o
k
s
.
o
r
g
)
で実装するの?
(
あ
、
これも見た目は
L
i
s
t
<
i
t
e
m
>
だ
)
■ところで
c
o
n
t
a
i
n
e
r
_
o
f
の一行目の目的がわからない
。
p
t
r
も
_
_
m
p
t
r
も一回しか評価されないように見えるし
、
p
t
r
と
_
_
m
p
t
r
の値は同じだし
、
_
_
m
p
t
r
は
c
h
a
r
*
にキ
ャ
ス
トして使われるから型変換が目的でもなさそうだし
。
p
t
r
から
_
_
m
p
t
r
へのキ
ャ
ス
トで値が変わることがある?
■これが真相
?
「
T
h
e
f
i
r
s
t
l
i
n
e
i
s
n
o
t
i
n
t
r
i
n
s
i
c
a
l
l
y
i
m
p
o
r
t
a
n
t
f
o
r
t
h
e
r
e
s
u
l
t
o
f
t
h
e
m
a
c
r
o
,
b
u
t
i
t
i
s
t
h
e
r
e
f
o
r
t
y
p
e
c
h
e
c
k
i
n
g
p
u
r
p
o
s
e
s
.
」
先月のポ
ス
ト
。
ひと月早か
ったら答えが見つからないところだ
った
。
■値が同じどころか型変換が行われない
(
のが正常
)
というところまで気がついて然るべきだ
った
。
メンバ関数型やらクラスキ
ャ
ス
ト
(
u
p
/
d
o
w
n
/
c
r
o
s
s
)
がご
っち
ゃにな
ってたもよう
。
■好きな名前をつけられるなどの他にこういうメリ
ッ
トもあると
か
。
「
4
.
Y
o
u
c
a
n
h
a
v
e
m
u
l
t
i
p
l
e
l
i
s
t
s
!
」
■
■
■
@
2
0
1
4
-
1
0
-
0
9
『省メモリプログラミング
(
S
m
a
l
l
M
e
m
o
r
y
S
o
f
t
w
a
r
e
)
』
に
E
m
b
e
d
d
e
d
P
o
i
n
t
e
r
s
というパタ
ーンが載
っている
。
まさしくリ
ス
トのポインタをリ
ス
トされるデ
ータに埋め込むような方法のことだ
。
i
n
t
r
u
s
i
v
e
な設計ゆえのデメリ
ッ
トはあるが
、
リ
ス
トされるデ
ータを指すポインタと次の
ノ
ー
ドを指すポインタがひとつにまとめられる利点と
、
(
それと同じことだが
)
メモリ確保が一度で済む利点がある
。
たぶん設計とコ
ー
デ
ィ
ングを同時並行でや
ってるとデ
ータが次デ
ータへのポインタを持
っているなんてことは自然に起こ
っていることだろ
。
一度リ
ス
トとしてのデ
ータと操作を単独で確立してからそれを埋め込むようなことをしているか
ら
「あれ
っ?
」
となるわけで
。
翌日へ
前日へ