From ec3c41164f8a21a7077a516718062f9c8be18d9e Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 15 Mar 2023 00:10:22 +0900 Subject: 補足を追記 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- slide.saty | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'slide.saty') diff --git a/slide.saty b/slide.saty index ec1a727..dc36446 100644 --- a/slide.saty +++ b/slide.saty @@ -1434,6 +1434,43 @@ $lhs =& $rhs; +code-block-php(quiz-6-a); > > + + +section{|入り切らなかったクイズの解説|}< + +frame{参照の不思議クイズ: Q5}< + +listing{ + * 参照は(Cにおける)ポインタでないことを示す例 + * \inline-code(`$x`);への代入で、\inline-code(`$x`);が\inline-code(`$g`);と同じものを指すようになる + } + > + + +frame{参照の不思議クイズ: Q6}< + +listing{ + * プロパティの参照を作ると、本編で説明を省いた\inline-code(`zend_reference`);の\inline-code(`sources`);に情報が格納され、型チェックがおこなわれる + * 参照を使ってtyped propertyの型チェックを潜り抜けられないようにするための仕様 + } + > + > + + +section{|曖昧にごまかしていた説明の補足|}< + +frame{「AがBを参照する」という言い回しについて}< + +listing{ + * \inline-code(`$x =& $y`);と書いたとき、\inline-code(`$x`);と\inline-code(`$y`);は同じものを指している (本編の図を参照のこと) + * \inline-code(`$x`);が\inline-code(`$y`);を指しているわけでも、\inline-code(`$y`);が\inline-code(`$x`);を指しているわけでもない + * \inline-code(`$x =& $y`);と\inline-code(`$y =& $x`);はまったく同じ効果を持ち、区別できない + * しかし、本編では「AがBを参照する」や「AがBを指す」という言い方をしている。このあたりの解説を入れる時間がなかった + } + > + + +frame{ポインタの話}< + +listing{ + * C言語レベルで、構造体の中に値が埋め込まれているのか、ポインタ経由で間接参照しているのかは、本来厳密に区別する必要がある + * この発表はC言語の説明を極力排したので、ポインタの解説が入れられなかった + * そのため、ポインタかどうかの区別はごまかし、図では矢印を使っている + * 本当なら矢印が何を意味するのかを説明する必要があるが、入り切らなかった + * 知りたいかたはオリジナルのソースをご覧ください + } + > + > > > -- cgit v1.2.3-70-g09d2