ๆซไปฃ้ฏใฎๅๅ ใ้ฏใฎ็ฉ็่ท้ขใ่ฟใใใฆใๅพ ใกใใฆใใพใใ๏ผใใฉใณใน -> ๆฑไบฌ๏ผ
ใใณใใณใCoqใง่จผๆใใฆใฟใ / Yosh ใใ - ใใณใใฌ https://niconare.nicovideo.jp/watch/kn3390
ไปถใใจใซใใใใใใใใใใใใไปฅไธใฎ็็ฑใใชใใใใชๆฐใใใฆใใ
ใใใฐใใฉใใซใผใชใฉ่ฆใใฌใใๅใซใจใฃใฆๆฆใ็ธๆใจใฏใ่ช่บซใฎใคใกใผใธใซไปใชใใชใใ
ไพใฎใใใชใณใผใใใฎใใฎใๆธใไบบใฏใใพใใใชใใใใฉใใใใใใใฃใฆใใใใกใซไบๅฎไธใใใจๅใใณใผใใซใชใฃใฆใขใจใใใฎใฏใใใใก
http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html ใฎไพใฏใใใงใใญใ
void contains_null_check(int *P) {
ใint dead = *P;
ใif (P == 0) return;
ใ*P = 4;
}
ใใฎใณใผใใซใไธ่ฆใชNULLใใงใใฏใๅ้คใใใๆ้ฉๅใ่กใใจใint dead = *P;ใจใใ๏ผPใNULLใ ใจใใฎๆ็นใงๆญขใพใ๏ผๆใใใใใจใใใif (P == 0) return;ใซๅฐ้ใใๅ ดๅใฏใใงใใฏใใใจใNULLใงใชใใใจใฏๆใใใชใฎใงใif (P == 0) return;ใๆถใใพใใ
ใใฎๅพใงใไฝฟใใใฆใใชใๅคๆฐใๅ้คใใใๆ้ฉๅใ่กใใจint dead = *P;ใๆถใใพใใ
void contains_null_check(int *P) {
ใ*P = 4;
}
็ตๆใNULLใใงใใฏใใใฃใใฏใใฎใณใผใใใNULLใใงใใฏใๆถใใพใใไฝใๆชใใฃใใใจใใใจๆ้ฉๅใฎ้ ็ชโฆโฆใงใฏใชใใint dead = *P;ใๆชใ
ไปฅๅใใใซ่ฒผใฃใใใฉใGCCใจClangใงๆ้ฉๅใในใฎ้ฉ็จ้ ๅบใ้ใใฎใงใใใฃใใฎ่จไบใฎ2ๅ็ฎ http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html ใซ็ปๅ ดใใใใ้ ็ชใงๆ้ฉๅใใใจNULLใใงใใฏใๅนใฃ้ฃใถใใฉๅฅใฎ้ ็ชใงๆ้ฉๅใใใจNULLใใงใใฏใๆฎใใจใใไพใฏๅฎ้ใซ่ตทใใ
LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3 http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html
ๆๅใฎ่ฉฑใซใคใใฆใฏ๏ผไปฅๅใ็ดนไปใใใใฉ๏ผใใฎ3ๅใทใชใผใบใ่ชญใใจ่ฏใใ
2็ช็ฎใฎ่ฉฑใซใคใใฆใฏใณใณใใคใฉใซใณใณใใชใใฅใผใทใงใณใใใไปฅๅคใซ่จใใใจใใชใ
ๆฌใฎ่ซ: ใชใใงGCCใฏa*a*a*a*a*a ใ (a*a*a)*(a*a*a) ใซๆ้ฉๅใงใใชใใฎ๏ผใฃใจ https://cpplover.blogspot.com/2014/03/gccaaaaaa-aaaaaa.html
ใพใใซใใใฎ่ฉฑใฝใใ๏ผ
ๆๅใฎ่ฉฑใซใคใใฆใฏใณใณใใคใฉใฎใใผใธใงใณใไธใใใจๅฃใใใใใณใณใใคใฉใๅคใใ๏ผGCCใใClangใจใ๏ผใจๅฃใใใใๆ้ฉๅใฌใใซใไธใใใจๅฃใใใใใณใณใใคใฉใฎใใผใธใงใณใๆ้ฉๅใฌใใซใๅใใงใๅบๅใณใผใใฎCPUใขใผใญใใฏใใฃใ้ใใจใขใผใญใใฏใใฃไพๅญใฎๆ้ฉๅใในใๅใๆฟใใฃใฆๅฃใใใใใใใจใใใใใฟใคใใณใฐใงๅฃใใๅฏ่ฝๆงใใใใฎใงUBใฏใใใใใญใจใใ่ฉฑ
ๆๅพใฎ่ฉฑใซใคใใฆใใๅฐใ่ฉฑใใจใๆฐๅญฆใฎๆๆฅญใง็ฟใa * (b + c) = a * b + a * cใฎใใใชๆ็ญๅผใง่กจใใใๅผๅคๅฝขใใใญใฐใฉใใณใฐ่จ่ชใๆไพใใฆใใๆดๆฐๅใๆตฎๅๅฐๆฐ็นๆฐๅใฎๅผใงใๅฟ ใๆใ็ซใคใจใฏ้ใใชใใฎใงใใใ-ffast-mathใฎใใใชใชใใทใงใณใฏใใใใๅฟ ใๆใ็ซใคใใฎใใใซๅผๅคๅฝขใใใฆ่จ็ฎใ้ซ้ๅใใไปฃใใใซ็ตๆใๅ ใฎๅผใจๅฅใฎๅคใซใชใฃใใใชใใชใใฃใใใใพใ
ใณใผใใซๅ้กใใใๅ ดๅใใใ๏ผใใจใใฐใไธใฎไธญใฎC่จ่ชใฎใณใผใใซใฏใใฐใใฐ่จ่ชไปๆงไธๅใใใจใไฟ่จผใใใฆใใชใ่จ่ฟฐใๅซใพใใฆใใ๏ผใใๆ้ฉๅใซใใฐใใใๅ ดๅใใใใใๅผทใๆ้ฉๅใฎไธญใซใฏ่จ่ชไปๆงไธ่จฑใใใฆใใชใใณใผใๅคๆใ่กใใใฎ๏ผGCCใฎ-ffast-mathใชใฉ๏ผใใใฃใฆใใใใไฝฟใใจ่จ่ชไปๆงใซใใใฐใใ็ตๆใ็ขบๅฎใซๅพใใใใณใผใใๅฅใฎ็ตๆใๅพใใใใซใชใฃใฆๅฃใใใใจใใใ
ใใใใใฐใฉใใใฆๆ้ฉๅใๅผทใใใใจๅใใชใใชใใใ ใใ ใใใฏๅฎ้ใณใผใใใใใใใฎใชใฎ ใใใจใๆ้ฉๅๅดใใใใใใฎใชใฎ
ICARUS Neutrino Detector Installation at Fermilab https://youtu.be/1Qmr7WEKy-Q
ใญใทใขๅฎๅฎไธป็พฉ - Wikipedia https://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B7%E3%82%A2%E5%AE%87%E5%AE%99%E4%B8%BB%E7%BE%A9