ä»åã®è³ªåã¯ã
ããã¹ãïŒæ®µã®ããã°ã©ã ãæ¹é ãããã¯ãã«ãªã£ãŠã
æ¹é ã§ïŒ©ïŒŠæã远å ããå¿
èŠãåºãæïŒã€ãŸããã¹ãïŒïŒæ®µã«ãªãæïŒã
çããã¯ã©ããããŸããïŒ
æ¡ïŒïŒ
æã®æ¡ä»¶åŒãéã«ããŠç°åžžåŠçåŸãå³RETURNã«ãããšãã
å¥é¢æ°äœããšãããŠã
ãã¹ããæµ
ããã
æ¡ïŒïŒ
ã©ãããããç¡ãã®ã§ããã¹ãïŒïŒæ®µã«ããã
æ¡ïŒïŒ
å¥ã®ä»äºãäœã£ãŠãéããã
質åã®èæ¯ïŒ
ãããŒã倧ããçç±ã¯ç¡ãã®ã§ããã
fj.comp.lang.c ãš
fj.jokes ã°ããèªãã§ãããã
fj.comp.misc ããåãäºã«ãªã£ãŠããã®ã§
ïŒOutlook Expressã§ã¹ã¯ããŒã«ããŒã
ïŒæãã£ããå³ã«åŒã£åŒµããªããšèªããªãããã
ïŒåãäºã«ãªã£ãŠãã®ã§ããã¹ãïŒïŒæ®µã飿³ãããŸã§ã
ïŒè³ªåã«å¯Ÿãããäžèœãªçããç¡ãäºã¯æ¿ç¥ã
ïŒãã¹ãïŒïŒæ®µã®ããã°ã©ã ã¯æ¹é å¯èœãïŒã®å®éšçæçš¿ã§ãã
以äžãéæ
ïŒïŒïŒ fj.comp.misc ã§ã®ã倪ç°ãããšãå è€ããã®è°è«ã«ã¯ã
決çã¯ä»ããªãã ãããªã
å è€ããïŒå®å®ã®è£ã®è£ãŸã§èŠãŠããããšåªåãç¶ããã®ãæè¡è
ã®å¿
ææ°
倪ç°ããïŒå®å®ã®è£ã®è£ã¯ãèŠãããããªãã®ã§åºæ¥ãç¯å²ãæèšãã
ã®ãæè¡è
ã§ãã
ïŒããšè§£éããã®ã¯ç§ã§ãã£ãŠããäºäººã¯ãããªäºã¯ã©ãã«ãæžããŠãŸã
ãã
ïŒè£ã®è£ã¯è¡šã ããã®çªã£èŸŒã¿ã¯ç¡ããã
ïŒè£ã¯äœè€ããã§ããã®è£ã¯ç°äžããããã®è£ã¯éŽæšãããã©ããŸã§ãç¶ã
æ°èäœå®
å°
ïŒïŒïŒ fj.comp.misc ã§ã®ãã¹ã¬ããã®æšç§»ã¯ã
ãã€ã€ã¢ã³ã瀟
â
â
ããã€ãŸã§ãã°ãè²·ããããã®ããâ
â
ããŒã¯ã»ããã·è
æ€æšäžçåŒç£èš³
ã®ãç®æ¬¡ã«é
·äŒŒããŠããã®ã§ãè峿·±ãã§ãã
èå³ã®ãã人ã¯äžèªããã
以äžããããããã®ç§ã«å¯Ÿãã幟ã€ãã®è°é¡ã®åç
ïŒä»ã®äººãèªãã§ãããŸãé¢çœããããŸããã
第ïŒïŒ
ãå
±æã欲ãããŠæçš¿ããã®ã«æãã®ã»ãçè§£ã瀺ããŠããããªããããã
å
±æã欲ãããŠæçš¿ãŠæçš¿ããã®ã§ã¯ãªãã
ããããããããã§ã«æ°ã¥ããŠããæ§ã«è£œå玹ä»ã®ããã«ã
æçš¿ããŠããŸãã
ã¬ãã®æ²¹å£²ãã§ãããããªãã«ã®ã£ã©ãªãŒã¯éãŸã£ãŠãããšæããŸããã
ãããããããããã¢ã«ãããã¯ãªè°é¡ã欲ããŠããã®ã§ããã°ã
ãã®ãããªã¹ã¬ããããããããããç«ãŠãã°è¯ãã ããšæããŸãã
第ïŒïŒ
ãåæãèæ¯ãå
šã瀺ããã«ãããã
K&R2ã®ïŒç« ãç¥ã£ãŠãã人ãªãçè§£ã§ããäºãè°é¡ã«ããŠããã€ããã§ãã
ã§ãããŸããã¥ãŒã¹ã°ã«ãŒããã®èªè
ã¯ã倿§ãªã®ã§ã
ïŒå²äœã®äººã«ã¯ç§ã®ã¹ã¬ããã®æå³ã¯éããªããšæã£ãŠãŸãã
ãã®ãïŒå²ã®äººãã質åãããã°ãïŒïœïŒåãåçããŸããã
話ãéããªããšæã£ããã
åŸã¯ç¡èŠããŸãã
ïŒãããšãããããããã¯å€ä»æ±è¥¿ã®äžäººã«çè§£å¯èœãªè¡šçŸæ¹æ³ããåç¥ãªã®ã§
ããïŒ
第ïŒïŒ
ããã¹ãããšèšãåãããããªå®ç³ãªã©ååšããªããããã
ã«ãŒããã³å士ã¯ãããã°ã©ã æžæ³ãã®äžã§ã
æ
£çšè¡šçŸã䜿çšããªãããšè¿°ã¹ãŠããŸã
æ
£çšè¡šçŸã£ãŠã®ã¯ãå®ç³ãªã®ã§ã¯ãªãã§ããããïŒ
第ïŒïŒ
ãæ®ã©ç¡èŠããŠèãæ°ããªããããã
const ã®äœ¿ç𿹿³ã®æãçœæãæããæçš¿ãããŠãŸãã
ïŒããšãç¹°ãè¿ãã§ããã話ãéããªããšæã£ãããç¡èŠããŸãã
第ïŒïŒ
ãèªä¿¡éå°ãããã
ããã¯ããã£ãã¯ãæãããŸãŸã«ããŠãã
ãããããã«ã
ãé¡ããšãããšãªãæããŠãããã®ã«ã
å
šç¶æ°ã¥ããªãæ§ã§ããã
第ïŒïŒ
ãééãããŒãã«ããåªåãéããããã¯ãããããrecoveråºæ¥ãã·ã¹ãã ã
ã¶ã€ã³ãããã
ããã¶ããããã°ã©ãã銬鹿ã«ããçºèšã§ããã
ããã
failsafe ãšãããfoolproofãšãã£ã
SEççºæ³ã ãã§å
ç¢ãªã·ã¹ãã ãæ§ç¯ã§ãããš
ãèããªãã°ã
ããããããã
FDã¯ããŒã³ã®éçºã®äžã§äœ¿çšããŠãã
lintïŒïŒCèšèªãã§ãã¯ããŒã«ïŒããã°ã©ã ã®äºçŽ°ãªæ¯çŸœç«ã¡ãææããããŒ
ã«ïŒ
ãªã©ã䜿ããªããã°è¯ãã®ã«ã
--
以äž
èŠãŠãåæäœ¿ã£ãŠ http://rec.ncos.co.jp
tabeããã®<ab664l$qs4$1...@bgsv5905.tk.mesh.ad.jp>ãã
>第ïŒïŒ
> ãééãããŒãã«ããåªåãéããããã¯ãããããrecoveråºæ¥ãã·ã¹ãã ã
>ã¶ã€ã³ãããã
>
> ããã¶ããããã°ã©ãã銬鹿ã«ããçºèšã§ããã
> ããã
> failsafe ãšãããfoolproofãšãã£ã
> SEççºæ³ã ãã§å
ç¢ãªã·ã¹ãã ãæ§ç¯ã§ãããš
> ãèããªãã°ã
> ããããããã
> FDã¯ããŒã³ã®éçºã®äžã§äœ¿çšããŠãã
> lintïŒïŒCèšèªãã§ãã¯ããŒã«ïŒããã°ã©ã ã®äºçŽ°ãªæ¯çŸœç«ã¡ãææããããŒ
>ã«ïŒ
> ãªã©ã䜿ããªããã°è¯ãã®ã«ã
ããããã£ãŠå ç¢ãªããã°ã©ããæ§ç¯ãããããã§ããã
--
èµ€ç
çŠ
ãNewsgroups: ã¯ãã®ãŸãŸã«ããŸãããç¶ããããªãé©å®ç§»åããŠ
äžããã
In article <ab664l$qs4$1...@bgsv5905.tk.mesh.ad.jp>,
tabe <ta...@mug.biglobe.ne.jp> wrote:
>ç°éšã§ãã
>ä»åã®è³ªåã¯ã
ããã®è³ªåãã€ãã§ãªã®ã§ããããæ¬é¡ãšã¯å¥èšäºã«ããæ¹ãè¯ã
ã£ãããšæããŸãã
> å
±æã欲ãããŠæçš¿ãŠæçš¿ããã®ã§ã¯ãªãã
> ããããããããã§ã«æ°ã¥ããŠããæ§ã«è£œå玹ä»ã®ããã«ã
> æçš¿ããŠããŸãã
ãæçš¿ç®çãåçšå©çšã§ãã£ãããšãããããæããã«ããŸãããã
fj ã® AUP ã§ã¯åçšå©çšã®æçš¿ãçŠããŠããŸãã®ã§ã以éããã®ç®
çã®ããã®æçš¿ã¯çµ¶å¯Ÿã«ããªãã§äžããã
ãBIGLOBE ãã䜿ãã®ããã§ãã®ã§ãprovider åŽã§çšæããŠãã
ã¬ã€ãã©ã€ã³ãæããŠãããŸãã
http://support.biglobe.ne.jp/help/nn-guide.html
ïŒãä»ã®éšåã«é¢ããŠã¯ç¹ã«èšãããšã¯ãããŸãããç§ã¯ããã®èª
ïŒè
ã銬鹿ã°ã£ããã ãšã¯æã£ãŠããŸããã®ã§ãäœãæ£ãããã¯å
ïŒèªã§å€æããã°ããã§ãããã
--
ããã ããã
ãæ®éã«ã远å ããŸãã
颿°åãã¹ããšããã颿°åããŸãã
é©å®ãlongjmp ããŸãã
å
å¿ã§ãææ¡äž»çŸ©çãªgoto嫿ªãå²ç¬ããŸã
以äž
> ããã¹ãïŒæ®µã®ããã°ã©ã ãæ¹é ãããã¯ãã«ãªã£ãŠã
> æ¹é ã§ïŒ©ïŒŠæã远å ããå¿
èŠãåºãæïŒã€ãŸããã¹ãïŒïŒæ®µã«ãªãæïŒã
ããŒã
ããã¹ããã ã£ããã9 éãã ããã
ãIF æ(ãŠäœ?)ãã ã£ããããã€ã³ãã³ã 10 段ãã ããã
ãšãçžãå€ãããäœããæºèŒã§ããã
ãã®ç°éšæ°ã£ãŠãããããŠãªãŸã??
# ãããšãéç®±ã?
ç¥ç°æåº <ca...@kgc.co.jp>
On Mon, 6 May 2002 23:59:00 +0900, in
<ab664l$qs4$1...@bgsv5905.tk.mesh.ad.jp>,
"tabe" <ta...@mug.biglobe.ne.jp> wrote:
> ããã¹ãïŒæ®µã®ããã°ã©ã ãæ¹é ãããã¯ãã«ãªã£ãŠã
> æ¹é ã§ïŒ©ïŒŠæã远å ããå¿
èŠãåºãæïŒã€ãŸããã¹ãïŒïŒæ®µã«ãªãæïŒã
> çããã¯ã©ããããŸããïŒ
ããã¹ãïŒæ®µãã£ãŠã«ãŒãã9段ã«ãªã£ãŠããã£ãŠæå³?ãããšãif-elseã®
ãã¹ãããããæ·±ããšããæå³?
ããã¯ãšãããã4çªç®ã®æ¡ãšããŠããã¢ã«ãŽãªãºã ããæžãçŽãããšãã
æ¹æ³ããããŸãã
以åãç§ãééããäºäŸã§ãããä»äºã§åŒãç¶ãã ã³ãŒãã®äžã«ãif-elseã®
ãã¹ããæ·±ããŠããã«ã¯ã¡ãã£ãšçè§£ã§ããªã颿°ããããŸãããæ ¹æ°ãã
調ã¹ããšãããŸããŸããŒãã«åç
§ã®ã¢ã«ãŽãªãºã ã䜿ãããã¿ãŒã³ã ã£ãã®ã§ã
ããã䜿ã£ãŠæžãçŽããããããŒãã«éšåãå«ããŠã(èšæ¶ã§ã¯)1/3以äžã«
ãªã£ãããšããããŸãããã§ãå®è¡ã³ãŒãæ¬äœã¯ã»ãã®æ°è¡ã(ç¬)ãã
ã ã£ããã¡ãã£ãšCãããã£ãŠããã°äœããã£ãŠããã®ãäžç®çç¶ã§ãããã
# ãããª èªæãªäŸããã¢ã«ãŽãªãºã ã®å€æŽãã«å€ãããã¯å¥ãšããŠã
ãã¡ãããcase by case ã§ã¯ãããŸãã
---------
å±±æ éå¿ ãdebugã¯ïŒæ©åŸéãïŒæ©åé²ããã€ãŸã§ãã£ãŠãçµããªãã
e-mail : vy...@janis.or.jp
WWW page : http://www.janis.or.jp/users/vyama/
"KANDA Toshihiro" <ca...@kgc.co.jp> wrote in message
news:s7fn0vc...@xxx.kgc.co.jp...
> "tabe" <ta...@mug.biglobe.ne.jp> wrote in message
> news:ab664l$qs4$1...@bgsv5905.tk.mesh.ad.jp...
>
> > ããã¹ãïŒæ®µã®ããã°ã©ã ãæ¹é ãããã¯ãã«ãªã£ãŠã
> > æ¹é ã§ïŒ©ïŒŠæã远å ããå¿
èŠãåºãæïŒã€ãŸããã¹ãïŒïŒæ®µã«ãªãæïŒã
>
> ããŒã
> ããã¹ããã ã£ããã9 éãã ããã
> ãIF æ(ãŠäœ?)ãã ã£ããã
ïŒãŠäœïŒïŒã£ãŠäœïŒ
ifæã£ãŠå°æåã§æžãã£ãŠäºïŒ
> ãã€ã³ãã³ã 10 段ãã ããã
é§ç®ïŒ
ããã¹ããïŒæ®µããããšãã衚çŸã
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.12.3.html
ããã§ãããããŠããã®ã§ãäžè¬ç衚çŸã ãšæããŸããã
> ãšãçžãå€ãããäœããæºèŒã§ããã
> ãã®ç°éšæ°ã£ãŠãããããŠãªãŸã??
> # ãããšãéç®±ã?
ïŒäŒŒãŠãã確ãã«ã
âââââââââââââââââââ
"Yoshiki Kataoka" <kat...@ka2.so-net.ne.jp> wrote in message
news:ab8kun$m93$1...@news01bc.so-net.ne.jp...
> > ä»åã®è³ªåã¯ã
> > ããã¹ãïŒæ®µã®ããã°ã©ã ãæ¹é ãããã¯ãã«ãªã£ãŠã
> å
å¿ã§ãææ¡äž»çŸ©çãªgoto嫿ªãå²ç¬ããŸã
> 以äž
å€ãªãã©ã°å€æ°ãã£ã±ãäœã£ãŠã
äœããªãã§ãã
goto 絶察䜿ããªã人ã£ãŠãããŸãããã
æ¡ïŒïŒ
ãèªåã§æ°èŠã«äœãçŽã
ã
ã£ãŠã®ã¯ãã¡ã§ããïŒ
以åã«ããããŸãããã¹ããã«ãŒããå
¥ãããã ããã°ã©ã ãèŠãŠ
ãããçè§£ããã«ã¯äœã¶æããããããã ããäœãçŽããªãïŒé±éçšåºŠã§
ååã ãšå€æããŠãããããããšãããã®ã§ããã
>å ±æã欲ãããŠæçš¿ããã®ã«æãã®ã»ãçè§£ã瀺ããŠããããªã
éããŠãããšèšããããã§ãããNetNewsã£ãŠããåã ã¡ãäœãå Žããããªã
ãšç§ã¯æã£ãŠããŸããããããã®ãæããªããªã¢ã«ç€ŸäŒã«ãããã§ããããŸã
ã®ã§ããããããããã§æ±ããªããŠããã£ãŠæãã®ã§ããã
--
D.Miyasaka <mailto:miya...@anet.ne.jp>
ãæ°èŠã«äœãããšããã®ã¯ãããªãæµãŸããç°å¢ã§ããããå°ãªããšãããã
ã°ã©ã ã®ããšããšã®ä»æ§ããã¡ããšãããšããæå³ã§ã
--
äŒå¢ shinj...@nifty.ne.jp
>> æ¡ïŒïŒ
>> ãèªåã§æ°èŠã«äœãçŽã
>
>ãæ°èŠã«äœãããšããã®ã¯ãããªãæµãŸããç°å¢ã§ããããå°ãªããšãããã
>ã°ã©ã ã®ããšããšã®ä»æ§ããã¡ããšãããšããæå³ã§ã
仿§ãç¡ãããäœãçŽããšããã®ãããããšã
ïŒããããããã®ã¯æ°èŠãšããã®ããªïŒ
tabe wrote:
> 第ïŒïŒ
> ãåæãèæ¯ãå
šã瀺ããã«ãããã
>
> K&R2ã®ïŒç« ãç¥ã£ãŠãã人ãªãçè§£ã§ããäºãè°é¡ã«ããŠããã€ããã§ãã
ãåæãèæ¯ãå
šã瀺ããã«ããããã£ãŠã®ã¯ããããããšãããªããšæãã®ã§ããã
çµå±ãå
šç¶è§£ã£ãŠãªãã£ããã§ããã
--
cog...@sp.hudson.co.jp
æ ªåŒäŒç€Ÿãããœã³
ã³ã¢ã»ãã¯ãããžãŒäºæ¥æ¬éš
ã·ã¹ãã éš ãœãããŠã§ã¢èª²
ç岡 å¿(Kumaoka Shinobu)
"D.Miyasaka" <miya...@anet.ne.jp> wrote in message
news:3CD8F0EF...@anet.ne.jp...
> æ¡ïŒïŒ
> ãèªåã§æ°èŠã«äœãçŽã ã
> ã£ãŠã®ã¯ãã¡ã§ããïŒ
ããã
> 以åã«ããããŸãããã¹ããã«ãŒããå
¥ãããã ããã°ã©ã ãèŠãŠ
> ãããçè§£ããã«ã¯äœã¶æããããããã ããäœãçŽããªãïŒé±éçšåºŠã§
> ååã ãšå€æããŠãããããããšãããã®ã§ããã
ç§ããããŸããã
struct tag {
int mem1 ;
int mem2 ;
........
int mem1000 :
} R ;
R.mem1 = 0 ;
R.mem2 = 0 :
.....
R.mem1000 = 0 ;
ã®ïŒïŒïŒïŒè¡ãã
memset(&R,0,sizeof(R)) ;
ã®ïŒè¡ã«ãã¡ãã£ãã
ïŒã¡ãã£ãšèªåŒµã
ïŒã«ãŒããã³å士ãã
ïŒåŠçé床ãé
ãã®ãã
ïŒæ±ãã³ãŒããã
ïŒæžãçŽããŠããŸãïŒïŒã¿ãããªäºãæç®ã®äžã§ãã£ãŠãã
ïŒããã°ã©ã äœæ³ãæžæ³ã®ã©ã£ã¡ãã
ïŒïŒæ®µãã¹ãã¯æ©ãã«ã
ä¿®æ£ããªããšæãçããããªããªããã
ããªããã®æšïŒæã®çåæ§ïŒã¿ããã«ã
Takashi Yamamura <vy...@janis.or.jp> wrote in message news:<ab99h4$1rs$1...@cobalt01.janis.or.jp>...
> ããã¹ãïŒæ®µãã£ãŠã«ãŒãã9段ã«ãªã£ãŠããã£ãŠæå³?ãããšãif-elseã®
> ãã¹ãããããæ·±ããšããæå³?
ãªãã§ãããã§ãã
>
> ããã¯ãšãããã4çªç®ã®æ¡ãšããŠããã¢ã«ãŽãªãºã ããæžãçŽãããšãã
> æ¹æ³ããããŸãã
è³æã
ïŒã§ããè¥ããšãå®åãšãååãªãã¹ãããã±ãŒãžãå¿
èŠã
>
> 以åãç§ãééããäºäŸã§ãããä»äºã§åŒãç¶ãã ã³ãŒãã®äžã«ãif-elseã®
> ãã¹ããæ·±ããŠããã«ã¯ã¡ãã£ãšçè§£ã§ããªã颿°ããããŸãããæ ¹æ°ãã
> 調ã¹ããšãããŸããŸããŒãã«åç
§ã®ã¢ã«ãŽãªãºã ã䜿ãããã¿ãŒã³ã ã£ãã®ã§ã
> ããã䜿ã£ãŠæžãçŽããããããŒãã«éšåãå«ããŠã(èšæ¶ã§ã¯)1/3以äžã«
> ãªã£ãããšããããŸãããã§ãå®è¡ã³ãŒãæ¬äœã¯ã»ãã®æ°è¡ã(ç¬)ãã
> ã ã£ããã¡ãã£ãšCãããã£ãŠããã°äœããã£ãŠããã®ãäžç®çç¶ã§ãããã
ifæã®æ¡ä»¶ãéã«ããŠã
ç°åžžå
¥åã¯å³return ãããšãã¹ããæµ
ããªãå Žåãå€ãã®ã§ãã
ãã£ã±ããã¢ã«ãŽãªãºã ã®èŠçŽããçéããªã
> # ãããª èªæãªäŸããã¢ã«ãŽãªãºã ã®å€æŽãã«å€ãããã¯å¥ãšããŠã
> ãã¡ãããcase by case ã§ã¯ãããŸãã
ãã¹ãïŒæ®µã¯ïŒïŒïŒïŒè¡ã«ããªã颿°ã®å Žåãå€ãã®ã§ã
ææ¥ã®æïŒæãŸã§ä¿®æ£ã£ãŠæã«ã¯ã
ãã£ã±ãããã¹ãïŒïŒæ®µã«ãã¡ããããªãããã
ïŒèªä¿¡ãªãã
> R.mem1 = 0 ;
> R.mem2 = 0 :
> .....
> R.mem1000 = 0 ;
> ã®ïŒïŒïŒïŒè¡ãã
> memset(&R,0,sizeof(R)) ;
> ã®ïŒè¡ã«ãã¡ãã£ãã
çŽ æŽãªçåãªãã§ããã©ãäœã§é
åãããªããã§ããïŒ
ããããã£ãš memXX ãšããåçŽãªãã®ã§ã¯ãªãã£ããã§ããããã©ã
> ïŒã«ãŒããã³å士ãã
> ïŒåŠçé床ãé
ãã®ãã
> ïŒæ±ãã³ãŒããã
> ïŒæžãçŽããŠããŸãïŒïŒã¿ãããªäºãæç®ã®äžã§ãã£ãŠãã
> ïŒããã°ã©ã äœæ³ãæžæ³ã®ã©ã£ã¡ãã
ã§ãæ¬é¡ã¯ãã£ã¡ã§ããäžäœã©ãã®ããŒãžããã®åŒçšãªã®ã§ããããïŒ
ããã°ã©ãã³ã°äœæ³ P.227 ã®ç¬¬7ç« æ§èœã«ã¯ãæé©åã®ç¬¬1ã®ååã¯æ
é©åãããªãã ãšæžãããŠããŸããç¡æ¡ä»¶ã«ãæžãçŽããŠããŸã!ããšãæž
ãããŠããªããšæãã®ã§ãããæé©åãè¡ãã®ã¯ãåé¡ãéèŠãªå Žåãšã
ããã°ã©ã ãçŽç²ã«é
ãããå Žåãšãæ£ãããšå
ç¢æ§ãšæçæ§ãç¶æããª
ããé«éåãå³ããèŠèŸŒã¿ãããå Žåã«éãããããšéå®ãããŠããŸãã
ãŸã Writing Solid Code ã® P.198 ã«ã¯ãããã¯ãªãŒã³ã¢ãã
ããããšããã®è£œåã®æåã«é倧ã«ãããããªããªããã³ãŒããã¯ãªãŒã³
ã¢ããããŠã¯ãªããªãããšãããŸãããæ±ãã³ãŒãã ããæžãçŽããŠããŸ
ã!!ããšããçµè«ã«ããã«ã¯ããããªãçãªãã§ããâŠã
# åå©çšãèãããšãã¢ã³ããã¿ãŒã³ã®ã©ããã«ã¯ãŸããããªã®ã§
# ãåèšèšãåæ§æ³ãã«ãªããã§ããããã©ãäžèšã®ã¯ãããã話ã§ã
# ãïŒ
--
---
Takashi SAKAMOTO (PXG0...@nifty.ne.jp)
ç§ãªãã
> æ¡ïŒïŒ
> æã®æ¡ä»¶åŒãéã«ããŠç°åžžåŠçåŸãå³RETURNã«ãããšãã
> å¥é¢æ°äœããšãããŠã
> ãã¹ããæµ
ããã
ããã§ãããããåé¡ã¯ããç°åžžåŠçããå€ããªããšãå³RETURNãšããã®ã
çµæ§èŠã«ãããªãããšã§ããããã
ããã¡ãã£ãšå ·äœçãªäŸã§ããã
> æºå1;
> if (æºå1ãæå) {
> æºå2;
> if (æºå2ãæå) {
> æºå3;
> if (æºå3ãæå) {
> ãããªãããåŠç矀
> }
> æºå3ã®åŸå§æ«;
> }
> æºå2ã®åŸå§æ«;
> }
> æºå1ã®åŸå§æ«;
ãããªæãã®åŠçãå¿
èŠã«ãªãããšããããããŸããè€æ°å malloc ãããšãã
è€æ°ã®ãã¡ã€ã«ã fopen ãããšããå€ãã§ããããã
ç§ã¯ä»¥åã¯ã
> æºå1;
> if (æºå1ã倱æ) {return;}
> æºå2;
> if (æºå2ã倱æ) {æºå1ã®åŸå§æ«; return;}
> æºå3;
> if (æºå3ã倱æ) {æºå2ã®åŸå§æ«; æºå1ã®åŸå§æ«; return;}
> ãããªãããåŠç矀;
> æºå3ã®åŸå§æ«;
> æºå2ã®åŸå§æ«;
> æºå1ã®åŸå§æ«;
ãšæžãæããŠãŸããã
ãã®æ¹æ³ã¯åŸå§æ«ãè€æ°ã¶æã«åãããã®ããããªã®ã§ãæè¿ã¯
> æºå1;
> if (æºå1ã倱æ) goto end;
> æºå2;
> if (æºå2ã倱æ) goto end;
> æºå3;
> if (æºå3ã倱æ) goto end;
> ãããªãããåŠç矀;
> end:
> if (æºå3ãæå) æºå3ã®åŸå§æ«;
> if (æºå2ãæå) æºå2ã®åŸå§æ«;
> if (æºå1ãæå) æºå1ã®åŸå§æ«;
ãšãã£ãŠãŸããåŸå§æ«ã®ãšããã§ if ããããŸããã©ãmalloc ã®å Žåã¯ããã€ã³ã¿ã
NULL ã§åæåããŠãããåçç¡çšã§ free ããŸãã
ãããã goto ã䜿ãããšãèš±ããªã人ã«ã¯ããããã break ã䜿ããªãã§ãã
ãšãèšããããªããŸãããbreak ã return ã continue ã goto ã®äžçš®ãªãã ãã
PROJECT TEAM ïœïŒ§ïŒ¡ 髿ޥæ£é ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAã®ããŒã ããŒãž â http://doga.jp/
5æ10æ¥(é) 仿¥ã®ããŒãã£ãŒã®æ³å [ãªããã³ãã€ããŒã®æ³å]
çµéšã«å³åžã¯çµ¶å¯Ÿã«ãªãã
ã«ã¯ã
do {
æºå1;
if (æºå1ã倱æ) break;
æºå2;
if (æºå2ã倱æ) break;
æºå3;
if (æºå3ã倱æ) break;
ãããªãããåŠç矀;
} while(0);
if (æºå3ãæå) æºå3ã®åŸå§æ«;
if (æºå2ãæå) æºå2ã®åŸå§æ«;
if (æºå1ãæå) æºå1ã®åŸå§æ«;
âŠãšãæžãæãããšããªãããŠãããããããŠâŠ
ni...@ics.nara-wu.ac.jp
> ãããã goto ã䜿ãããšãèš±ããªã人ã«ã¯ããããã break ã䜿ããªãã§ãã
> ãšãèšããããªããŸãããbreak ã return ã continue ã goto ã®äžçš®ãªãã
ãã
ãã¶ã以äžãšåãã³ãŒãã®ããšã ãšæããã§ãã
BOOL b1=TRUE
BOOL b2=TRUE
BOOL b3=TRUE
if(b1 && b2 && b3){
æºå1ïŒ
if (æºå1ã倱æ) b1=FALSE;
}
if(b1 && b2 && b3){
æºå2ïŒ
if (æºå2ã倱æ) b2=FALSE;
}
if(b1 && b2 && b3){
æºå3ïŒ
if (æºå3ã倱æ) b3=FALSE;
}
if(b1) æºå3ã®åŸå§æ«;
if(b2) æºå3ã®åŸå§æ«;
if(b3) æºå3ã®åŸå§æ«;
gotoã€ãããªããŠãOKã ãšæããŸã
ãswitch ãã
--
èµ€ç
çŠ
BOOL b1=FALSE
BOOL b2=FALSE
BOOL b3=FALSE
b1=TRUE;
æºå1ïŒ
if (æºå1ã倱æ) b1=FALSE;
if(b1){
b2=TRUE;
æºå2ïŒ
if (æºå2ã倱æ) b2=FALSE;
}
if(b1 && b2){
b3=TRUE;
ãªãã«switch ïŒ
ïŒãã®ãã¡ãif ããããšããããããã ãª
From article <abftrg$9s4$1...@news.kyosai.or.jp>
by "Sugihara Yoshimi" <sugi...@kyosai.or.jp>
ããããããã«ããã°ã©ã ã®æµãã¯ããã§å€ããŸãããgotoã®å Žåãè¡ãå
ã®
ã©ãã«ãæ¢ããªããã°ãªããªãã®ã§ãã
æå³ã®ããååã䜿ã£ãŠããã®ãªãããã®ã§ããã
L100:
L200:
L300:
ãªããŠã©ãã«ã§ããã«çªå·ãé çªã«äžŠãã§ããªãå Žåã ãšèªãæ°ãããªããªã
ãŸãã
# æè¿ã¯ããæžã人ã¯ãããªã«ããªãããª...
# f2cã®åãåºããcã®ãœãŒã¹ãèŠããšæã
æ²ãããªããŸã(^^;)
ãgotoã絶察ã«äœ¿ããªãã§ã¯ãªããäœ¿ãæ¹ã§ããã
--
éŽæš çŸ (Suzuki Chikashi)
suz...@ma.kcom.ne.jp
ãæ¡ä»¶ä»ã goto æã§ããããïŒ switch
>ïŒãã®ãã¡ãif ããããšããããããã ãª
ããããªããšèšããŸããã®ã§ãå®å¿äžããã
--
èµ€ç
çŠ
> # f2cã®åãåºããcã®ãœãŒã¹ãèŠããšæã æ²ãããªããŸã(^^;)
é åãžã®ã¢ã¯ã»ã¹ã undefined behavior ãªæ¹æ³ã ãã?
# ãšããã±ãããšã㊠f2c.h ãèŠãŠç¬ã£ãŠããŸã£ã.
#
# /** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed."
#
# - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
--
Kazuo Fox Dohzono / doh...@hf.rim.or.jp
åŒçšãéã§ããã®ã§ã
ã¡ãã£ãšæ£ç¢ºã«ããŸãã
ã¿ãæ¬ã¯ãäžèšã®ïŒåã§ãã
ããã°ã©ã æžæ³ïŒ1976幎åç
ã«ãŒããã³ïŒPlaugeã èããå
±ç«åºç
ïŒå€ãæ¬ã§ãããçµæ§ä»ã§ãéããŸãã
ããã°ã©ã äœæ³ïŒ2000幎åç
ã«ãŒããã³ïŒRob Pikeè ASCII
"Takashi SAKAMOTO" <PXG0...@nifty.ne.jp> wrote in message
news:uit5xs...@nifty.ne.jp...
> "tabe" <ta...@mug.biglobe.ne.jp> writes:
> > R.mem1 = 0 ;
> > R.mem2 = 0 :
> > .....
> > R.mem1000 = 0 ;
> > ã®ïŒïŒïŒïŒè¡ãã
> > memset(&R,0,sizeof(R)) ;
> > ã®ïŒè¡ã«ãã¡ãã£ãã
>
> çŽ æŽãªçåãªãã§ããã©ãäœã§é
åãããªããã§ããïŒ
> ããããã£ãš memXX ãšããåçŽãªãã®ã§ã¯ãªãã£ããã§ããããã©ã
ããã§ããããããã£ãŒã«ããšããé
åãšãæãã®æ§é äœã
ããã°ã©ã æžæ³ã
P14ãã©ã€ãã©ãªé¢æ°ã䜿ãããããã
> > ïŒã«ãŒããã³å士ãã
> > ïŒåŠçé床ãé
ãã®ãã
> > ïŒæ±ãã³ãŒããã
> > ïŒæžãçŽããŠããŸãïŒïŒã¿ãããªäºãæç®ã®äžã§ãã£ãŠãã
> > ïŒããã°ã©ã äœæ³ãæžæ³ã®ã©ã£ã¡ãã
>
> ã§ãæ¬é¡ã¯ãã£ã¡ã§ããäžäœã©ãã®ããŒãžããã®åŒçšãªã®ã§ããããïŒ
æ±ãã³ãŒãã«ã€ããŠã
ããã°ã©ã æžæ³ïŒP102
ãã ããªããã°ã©ã ãä¿®æ£ããã®ã¯ãããŠãå
šéšæžããªãããã
ããã°ã©ã äœæ³ïŒïœïŒïŒ
ãæªãã³ãŒãã«ã³ã¡ã³ããã€ãããªãæžãçŽãã
é
ãã³ãŒãã«ã€ããŠ
ããã°ã©ã æžæ³ïŒP192
ãéãããããšããŠããã°ã©ã ãã²ããããŸããã®ã¯ãããŠ
ãã£ãšããã¢ã«ãŽãªãºã ãã¿ã€ãããã
> ããã°ã©ãã³ã°äœæ³ P.227 ã®ç¬¬7ç« æ§èœã«ã¯ãæé©åã®ç¬¬1ã®ååã¯æ
> é©åãããªãã ãšæžãããŠããŸããç¡æ¡ä»¶ã«ãæžãçŽããŠããŸã!ããšãæž
> ãããŠããªããšæãã®ã§ãããæé©åãè¡ãã®ã¯ãåé¡ãéèŠãªå Žåãšã
> ããã°ã©ã ãçŽç²ã«é
ãããå Žåãšãæ£ãããšå
ç¢æ§ãšæçæ§ãç¶æããª
> ããé«éåãå³ããèŠèŸŒã¿ãããå Žåã«éãããããšéå®ãããŠããŸãã
ããã§ãããæ§èœã«é¢ããŠã
ç¡æ¡ä»¶ã«ãæžãçŽããŠããŸã!ããšã¯æžãããŠããŸããã
åã®äžããäŸã¯ã
æ§èœé¢ã§ã¯ãªããŠãã¹ã¿ã€ã«ã®äŸã®ã€ãããªã®ã§
ããã°ã©ã äœæ³ïŒïœ50
ã第ïŒç« ãã¹ã¿ã€ã«ïŒïŒïŒïŒããªãæéããããã®ãã
ãããã®åç
§ãé©åã§ããããã
> ãŸã Writing Solid Code ã® P.198 ã«ã¯ãããã¯ãªãŒã³ã¢ãã
> ããããšããã®è£œåã®æåã«é倧ã«ãããããªããªãã
> ã³ãŒããã¯ãªãŒã³ã¢ããããŠã¯ãªããªãããšãããŸãã
ãã®æ¬ã¯ãWEBã§æ¢ããš
ãã€ã¯ããœãã瀟ã®éçºææ³ã玹ä»ããæ¬ã®æ§ã§ããã
ãªãã»ã©ããããã
仿¥ããããæ¬å±ã«ãã£ãŠã¿ãŸãã
>ãæ±ãã³ãŒãã ããæžãçŽããŠããŸã!!ããšããçµè«ã«
>ããã«ã¯ããããªãçãªãã§ããâŠã
ã»åããŠããç©ãããã£ã¡ããããŒãã
ã»åããŠããç©ããæã
è«å¹²ãããŠããã£ãšè¯ãåãã
çãè²ã
èããããŸããã
>
> # åå©çšãèãããšãã¢ã³ããã¿ãŒã³ã®ã©ããã«ã¯ãŸããããªã®ã§
> # ãåèšèšãåæ§æ³ãã«ãªããã§ããããã©ãäžèšã®ã¯ãããã話ã§ã
> # ãïŒ
ãããŒãé£ãã話ã¯èŠæãªã®ã§ã
ãã¹ãïŒïŒæ®µå€§å€ã ãããã©ãããŸãããçšåºŠã®è©±ã§ãã
> do {
> æºå1;
> if (æºå1ã倱æ) break;
ãïœ
> } while(0);
ãïœ
> âŠãšãæžãæãããšããªãããŠãããããããŠâŠ
å»å¹Žãgoto ã¯ã ããšãããæã«äžèšã®ããã«ãããã
do {} while(0); ããã£ã±ãæ°æã¡æªããšèšãããŠ
ããŸããŸããã
# ãã®ãŸãŸéããŠããããŸãããã©ã
--
æç°
sugi...@bk.iij4u.or.jp
äžèšã®ã³ãŒããç§ãªãåŽäžããŸãã
çç±ïŒïŒ
ç§ã¯é³¥é ãªã®ã§ãïŒè¡åã®ã³ãŒããå¿ããã
ïŒåã®æºåãæåãããã倱æãããèŠããŠãããããªãã
çç±ïŒïŒ
ïœïœ(æºå1æåã&& æºå2æåã&& æºå3æåã&& ......... ãæºå100æ
å) {
ç§ã¯ç¿é ãªã®ã§ãè€éãªïœïœæãçè§£ã§ããªãã
}ã
çç±ïŒïŒ
ç§ã¯ãã©ã°ãå«ãã ã
çç±ïŒïŒ
ç§ã¯å€æ°ãå€ãã®ãå«ãã ã
çç±ïŒïŒ
ç§ã¯åŠçé床ãé
ãã®ãå«ãã ã
gotoãããç¶ããïŒ
"Sugihara Yoshimi" <sugi...@kyosai.or.jp> wrote in message
news:abfp32$9fq$1...@news.kyosai.or.jp...
> ããã»ã»ã»ã¡ãã£ãšéããã»ã»
> åãã«ãããªã以äžã®ã³ãŒãã§ãã
>
> BOOL b1=FALSE
> BOOL b2=FALSE
> BOOL b3=FALSE
>
> b1=TRUE;
> æºå1ïŒ
> if (æºå1ã倱æ) b1=FALSE;
>
> if(b1){
> b2=TRUE;
> æºå2ïŒ
> if (æºå2ã倱æ) b2=FALSE;
> }
> if(b1 && b2){
> b3=TRUE;
> æºå3ïŒ
> if (æºå3ã倱æ) b3=FALSE;
> }
>
ç¶ãïŒ
çç±ïŒïŒ
ç§ã¯ïŒ¢ïŒµïŒ§ãå«ãã ã
ïŒæºåïŒãæºåïŒã®åŸå§æ«ã¯ïŒïŒïŒïŒ
> if(b1) æºå3ã®åŸå§æ«;
> if(b2) æºå3ã®åŸå§æ«;
> if(b3) æºå3ã®åŸå§æ«;
--
æåŸã«ãããæºåïœã®åŸå§æ«ããããã«ã¯æºåïœãæåãããã©ãã
èŠããŠãªããšãã¡ã ãšæãã®ã§ããïŒ
æºåãæåãŸãã¯å€±æãããã«ãããããæºåã®åŸå§æ«ãã§ããã®ãªãã°
ãŸãéã£ãã³ãŒãã«ãªããŸã
> çç±ïŒïŒ
> ïœïœ(æºå1æåã&& æºå2æåã&& æºå3æåã&& ......... ãæºå100
æ
> å) {
> ç§ã¯ç¿é ãªã®ã§ãè€éãªïœïœæãçè§£ã§ããªãã
> }ã
ããã¯èšããããšæããŸãããïŒç¬
å°ãèããã°ããããã³ãŒãã«ã¯ãªããªãã§ãã
> çç±ïŒïŒ
> ç§ã¯ãã©ã°ãå«ãã ã
ããã¯äººã«ãããšæãã®ã§ã³ã¡ã³ãããããŸãã
> çç±ïŒïŒ
> ç§ã¯å€æ°ãå€ãã®ãå«ãã ã
ãããã
倿°ã€ãã£ã¡ããã¡ã§ããã»ã»
ïŒ1åã2åãããããããããªãã§ãããïŒ
> çç±ïŒïŒ
> ç§ã¯åŠçé床ãé
ãã®ãå«ãã ã
æåŸã¯ããã§ããïŒïŒŸïŒŸïŒ
ã³ã³ãã€ã©ã®æé©åã«è² ããªãããã«ããã°ã£ãŠãã ãã
> çç±ïŒïŒ
> ç§ã¯ïŒ¢ïŒµïŒ§ãå«ãã ã
> ïŒæºåïŒãæºåïŒã®åŸå§æ«ã¯ïŒïŒïŒïŒ
>
> > if(b1) æºå3ã®åŸå§æ«;
> > if(b2) æºå3ã®åŸå§æ«;
> > if(b3) æºå3ã®åŸå§æ«;
ããïŒæ±
gotoã䜿ãã®ã¯ç°åžžåŠçãå¿
èŠãªå Žé¢ãã»ãšãã©ãªã®ã§ã
gotoãåºãŠããç®æã§ã¯ããããã©ããåŸå§æ«ãããšã
ãã«é£ã¶ãã ãªããšæã£ãŠããã°ãã
ãã¶ãã§ãããã®
æç¹ã§ãè¡ãå
ã®ã©ãã«ããæ¢ãå¿
èŠã¯ãªããŠããã®ã©
ãã«ãåºãŠãããšããã§ãã©ãããé£ãã§æ¥ãŠãããã
ããã§ãã¯ããã°ã ãããOKã
> æå³ã®ããååã䜿ã£ãŠããã®ãªãããã®ã§ããã
> L100:
> L200:
> L300:
> ãªããŠã©ãã«ã§ããã«çªå·ãé çªã«äžŠãã§ããªãå Žåã ãšèªãæ°ãããªããªã
> ãŸãã
ããã¯ãŸãããã ãã©ãããã°ã©ãã³ã°ã§äœ¿ããããã¹
ãŠã®ãååãã«ã€ããŠãããããšãªã®ã§ãããã§ãšãã
ãŠãŠããããŠãå¿
èŠããªãã§ãããã
> ãgotoã絶察ã«äœ¿ããªãã§ã¯ãªããäœ¿ãæ¹ã§ããã
å®éã®ãšãããgotoã絶察ã«äœ¿ããªããªããŠå¶çŽã®ãã
éçºçŸå Žã£ãŠã©ããããããã®ã§ãããã? ãããã»ãš
ãã©ãªãã®ãªãããããåã¿ããã£ãŠãgotoã絶察ã«äœ¿
ããªãã«åè«ããå¿
èŠããªãããã ãã
ã¡ãªã¿ã«ãgoto(returnãbreakãå«ããŠ)ã䜿ããã«ã
ãŸããããã«ãã©ã°å€æ°ãå°å
¥ããã®ã«ã¯ç§ã¯å察ãæ
å¹ç¯å²ããããã¯å
šäœã«åºãã£ãŠããŸããããããã¯å
ã®åå空éããã®çš®ã®ç°åžžåŠçã®ããã«æ±æãããã®ã
ãããããªãã§ãã
ç§ã®ã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã¯é«æŽ¥ããã®ãæè¿ã®ãæ¹æ³
ã«è¿ãããªã
--
倪ç°çŽ(Junn Ohta) (æ ª)ãªã³ãŒ/æ°æšªæµäºæ¥æ
oh...@sdg.mdd.ricoh.co.jp
ç§ã¯ç°éšãããæã¡åºãå®äŸã«ã»ãšãã©çŸå®å³ãæãã
ããªãããã©ãããçŸå ŽãèŠãããããªäŸãåºãŠããã®
ããèããããšæãã®ã§ãããããã«å¯Ÿããè¿äºã¯ãã
ã£ãŠãŸããããã
è¿äºããªãã®ã¯ã¹ã€ã«ããã§ãããŸããªãã®ã§ãããã
ã¡ãããã®è³ªåã«ã¯è¿äºããããããã«ããããããå
ãããã«çŸå®å³ã®ãªãäŸãæã¡åºããŠæ°ããã¹ã¬ããã§
è°è«ãå§ããæ
床ã«ã¯ã¡ãã£ãšãžãããããŠããŸãã
ããããããšããããªãããã®åã«ãèªåã®æã¡åºãã
å®äŸãã©ãã ãçŸå®ã®äžçã§åé¡ã«ãªã£ãŠããããã瀺
ãæ ¹æ ãèŠããŠããã ããŸããã?
ã¡ãªã¿ã«ãããã€ãŸã§ãã°ãè²·ããããã®ãããšãããµ
ããžã§ã¯ãããè°è«ã®å
容ã«ã»ãšãã©é¢ä¿ãããŸãããã
ããã«ãåçšç®çã®ãããããã«èŠããŸããæ¬¡ããã¯ã
ããããµããžã§ã¯ãã¯ãããŠãã ããã
髿ޥããã®goto䜿ã£ãã³ãŒãã§ãç§ãæžããgotoãªãã³ãŒãã«ãããã©ã°ã¯
å¿
èŠã ãšããããŸããïŒ
ã¯ããã ãããã®ã³ãŒãã®ãŸãŸãªãããã®ãã©ã°ã«ã¯å
察ããŸããã
ãã ãgotoã®é£ã³å
ãå€ããããšã§ãã©ã°ã«ããå€å®ã
æžãããšããã®ã¯ã¢ãªã§ããã
In article <abniau$jdu$1...@ns.src.ricoh.co.jp>
oh...@src.ricoh.co.jp (Junn Ohta) writes:
> gotoã䜿ãã®ã¯ç°åžžåŠçãå¿ èŠãªå Žé¢ãã»ãšãã©
C ã ãšãã®èšèªæ§é ãã (å€éã«ãŒãããã®è±åºãšã) è²ã
èãããããšæã
ãŸã (ç»å Žé »åºŠãããã»ã©å°ãªããªããšæããŸã).
ISO/IEC 9899:1999 ã®äŸ:
/* ... */
goto first_time;
for (;;) {
// determine next operation
/* ... */
if (need to reinitialize) {
// reinitialize-only code
/* ... */
first_time:
// general initialization code
/* ... */
continue;
}
// handle other operations
/* ... */
}
ã¡ãªã¿ã« goto ãšåãã jump-statement ã«åé¡ãããŠããã®ã¯æ¬¡ã®éã.
(6.8.6) jump-statement:
goto identifier ;
continue ;
break ;
return expression-opt ;
switch ã¯ãŸãå¥ã§ãã.
selection-statement:
if ( expression ) statement
if ( expression ) statement else statement
switch ( expression ) statement
case/default ã¯ã©ãã«ãšäžç·ã§ããã©.
(6.8.1) labeled-statement:
identifier : statement
case constant-expr : statement
default : statement
# ã©ãã«ã®åŸãã«å¿
ãäžæå¿
èŠã£ãŠç¥ããªã人ããããããŠâŠ.
ãããã£ã±ã§ããã©ãå€éã«ãŒãããã®è±åº(â»)ãªã©ã
ç°åžžåŠçã«å«ããŠãŸããïŒ
â»å€éã«ãŒãã®éäžããè±åºããã®ã£ãŠãããããã«ã«
ãŒãã§ãªããŠããããŒã¿æ§é ã®æ§é äžæŽåããã®ãŸãŸ
åæ ããŠããã®ã§ããã?
> ãããã£ã±ã§ããã©ãå€éã«ãŒãããã®è±åº(â»)ãªã©ã
> ç°åžžåŠçã«å«ããŠãŸããïŒ
>
> â»å€éã«ãŒãã®éäžããè±åºããã®ã£ãŠãããããã«ã«
> ãŒãã§ãªããŠããããŒã¿æ§é ã®æ§é äžæŽåããã®ãŸãŸ
> åæ ããŠããã®ã§ããã?
éããããŸããã.
if (failed)
return -1;
...;
çãªã³ãŒãã£ã³ã°ã§
for (y = 0; y < Y; y++)
for (x = 0; x < X; x++)
if (success (p[y][x]))
goto found;
return -1;
found:
// success (p[y][x]) is guaranteed here.
...;
ãšã. ãããã¡ãã
for (y = 0; y < Y; y++)
for (x = 0; x < X; x++)
if (success (p[y][x])) {
...;
return 0;
}
return -1;
ãšããã®ãåããªãã§ããã©, éåžžåŠçã³ãŒããé·ãå Žåã¯åè
ã®æ¹ãããã
æãæ°ãããŸã (åŸè
ã®æ¹ã¯äžæç«ã®åãæ°ã«ããªããèªã¿é²ããªããšãããª
ãã®ã§).
# ãgoto ãçšããæ§é çããã°ã©ãã³ã°ãã®äŸã¯ãã®æã®æ€çŽ¢ã«é¢ãããã®
# ãå€ãã£ããããª.
ãªãã»ã©ããã£ããããšããã§ãã
> # ãgoto ãçšããæ§é çããã°ã©ãã³ã°ãã®äŸã¯ãã®æã®æ€çŽ¢ã«é¢ãããã®
> # ãå€ãã£ããããª.
ç§ã®èšèªéæŽã¯æ¬¡ã®ãããªæãã§ããŠã
æ§é åãããŠããªãBASIC
Z80ã¢ã»ã³ãã©ãŒ
Fortran
Cobol
Pascal
C
Pascalã®ãšããã§ãã£ãããã»ãšãã©gotoã«é Œããªãã
ãã°ã©ã ãæžãããšã«ãªããŠããã®ããšCã§ãŸãgotoã
䜿ãããã«ãªã£ãŠããŠãŸãã
ãšããããã§ãgotoå±éºè«ã«ããŸãåŒãããããããšãª
ãããããšèªç±ã«gotoã䜿ãã»ããªã®ã§ãã...ã
äžèšã®ä»¶ãåçããŸãã
"Junn Ohta" <oh...@src.ricoh.co.jp> wrote in message
news:abnio6$jdu$2...@ns.src.ricoh.co.jp...
> fj.comp.lang.cã®èšäº<ab664l$qs4$1...@bgsv5905.tk.mesh.ad.jp>ã§
> ta...@mug.biglobe.ne.jpããã¯æžããŸããã
> > 第ïŒïŒ
> > ãæ®ã©ç¡èŠããŠèãæ°ããªããããã
> > const ã®äœ¿ç𿹿³ã®æãçœæãæããæçš¿ãããŠãŸãã
> > ïŒããšãç¹°ãè¿ãã§ããã話ãéããªããšæã£ãããç¡èŠããŸãã
>
> ç§ã¯ç°éšãããæã¡åºãå®äŸã«ã»ãšãã©çŸå®å³ãæãã
> ããªããã
fj.comp.lang.cã®åžžé£ã®å€ªç°ãããªãã
çŸå®å³ãæãããããšæãã®ã§ããã
ããã§ããªãæ§ã§ããã
> ã©ãããçŸå ŽãèŠãããããªäŸãåºãŠããã®
> ããèããããšæãã®ã§ãããããã«å¯Ÿããè¿äºã¯ãã
> ã£ãŠãŸããããã
æ®å¿µã§ãããçŸå Žã®æ
å ±å
¬éã¯éçããããŸãã
ïŒããã¯ãã©ãã§ãäžç·ã ãšæããŸããã
> è¿äºããªãã®ã¯ã¹ã€ã«ããã§ãããŸããªãã®ã§ãããã
> ã¡ãããã®è³ªåã«ã¯è¿äºãããã
%grep static *.h
ã§çããã€ããã§ãããã
確ãã«ã倪ç°ããã®çŸå Žã«å¯Ÿããçãã«ã¯ãªã£ãŠããŸãããã
ã§ãã
ç°æãããã
æ²³éãããã
ããããã¡ã€ã«äžã«staticããã£ããšãèšã£ãŠãããŠãäºããã
æ¥æ¬äžã§ã
staticã®æå³ããç¥ããªããã§äœ¿çšããŠããäºäŸã¯ã
容æã«æ³åãåºæ¥ãã®ã§ã¯ïŒ
ïŒãŽãããªäžå¹èŠã€ããã°ãªããšããã§ã
> ããã«ããããããå ãããã«çŸå®å³ã®ãªãäŸã
> æã¡åºããŠæ°ããã¹ã¬ããã§
> è°è«ãå§ããæ
床ã«ã¯ã¡ãã£ãšãžãããããŠããŸãã
ãããããå°ãäºäŸãåºããŸãããã
ä»åã®ã¹ã¬ããã®ã ãã¹ãïŒæ®µã®ããã°ã©ã ãã§ããã
(1) goto æãçµ¶å¯ŸçŠæ¢ãšããŠããæãããäºã¯
倪ç°ãããªãæ³åã§ããã§ãããã
ïŒæ¬§å·ã®èªåè»ç£æ¥çã®ïŒ£èšèªããã°ã©ã ã«ãŒã«ã§ããã
ãã»ã©ã«ãŒã«ïŒã ã£ãããªïŒã§ããgoto ã«ã¯åŠå®çã§ãã
(2)ã§ãgoto ã䜿çšããã ãã§ãåå
¥æåŠãšããŠããæããããäºã¯
倪ç°ãããªãæ³åã§ããã§ãããã
ïŒgoto ã䜿çšãããšããã»ã©ã«ãŒã«éµå®ã§ãªããªã£ãŠããŸããçãªã©ã
(3)ãgotoæãçŠæ¢ããããšãããã°ã©ãã¯
ã»ãã¹ããæ·±ããããã
ã»ãã©ã°ã®å€çšãšãïœïœæãç
©éã«ããã
ã®äºè
æäžãè¿«ãããã
ã§ã ãã¹ããç°åžžã«æ·±ããªãå Žåãããã
ã»ãã«ãã
è€åããã®ããã°ã©ãã³ã°èšºæå®€ã®äºäŸïŒ
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.12.3.html
ãšèšãããã§ã
ãã¹ã9段ã10æ®µã¯æ¥æ¬äžã«å¹Ÿãã§ããããŸãã
ïŒ·ïŒ¥ïŒ¢ã§æ¢ããšä»ã«ãèŠã€ãããŸããã
çŽãªã³ã¯ãããšãè²ã
åé¡ã«ãªããããªã®ã§ãããšããŸãã
> ããããããšããããªãããã®åã«ãèªåã®æã¡åºãã
> å®äŸãã©ãã ãçŸå®ã®äžçã§åé¡ã«ãªã£ãŠããããã瀺
> ãæ ¹æ ãèŠããŠããã ããŸããã?
ïŒãã¹ã9段ã10段ã¯åé¡ã§ã¯ãªããšã
ïŒèšããããšçµ¶å¥ããŠããŸããŸããã
> ã¡ãªã¿ã«ãããã€ãŸã§ãã°ãè²·ããããã®ãããšãããµ
> ããžã§ã¯ãããè°è«ã®å
容ã«ã»ãšãã©é¢ä¿ãããŸãããã
> ããã«ãåçšç®çã®ãããããã«èŠããŸããæ¬¡ããã¯ã
> ããããµããžã§ã¯ãã¯ãããŠãã ããã
ããã¯ãçŽ çŽã«å èŒ©ã®ææã«åŸããŸãããã
> --
> 倪ç°çŽ(Junn Ohta) (æ ª)ãªã³ãŒ/æ°æšªæµäºæ¥æ
> oh...@sdg.mdd.ricoh.co.jp
--
ãªãã話ããããŠç³ãèš³ãªãã®ãšãå¥ã®çºèšã«followãã¹ããªã®ãã
ãããŸãããâŠãšããããšã§è¿·ã£ãã®ã§ãããé©å®subjectãªã©ãå€ããŠ
ããã ããã°å¹žãã§ãã<(_ _)>
On 13 May 2002 09:27:42 GMT, in <abo0ue$nij$1...@ns.src.ricoh.co.jp>,
oh...@src.ricoh.co.jp (Junn Ohta) wrote:
>ç§ã®èšèªéæŽã¯æ¬¡ã®ãããªæãã§ããŠã
>
> æ§é åãããŠããªãBASIC
> Z80ã¢ã»ã³ãã©ãŒ
> Fortran
> Cobol
> Pascal
> C
ãããã«COBOLã¯ãã£ãããšããªããã^_^;ãã®ä»ã¯èšç®æ©åŠç§ã®äººé
ãããªãã®ã«ã6809ã¢ã»ã³ãã©ãšããModula-2ãšããåŠçæä»£ã«ãã£ãŠ
ãŸãããããããšBASIC-09ãšãã(ç¬)ä»ããèãããšåœæã¯å®åäžè¶³ã§
(ä»ã§ãå®åäžè¶³ã ãã©)ãŽãã®ãããªããã°ã©ã ããæžããªãã£ãã®
ã§ãããæããããªãã
ç§èªèº«ã¯ãgotoæåŠçå矀ãã¿ãããªåçç¡çšã®æçµ¶åå¿ã¯ããŸããªããš
æããŸãããã ããããã°ã©ã æžæ³ãã«æªãäŸãšããŠèŒã£ãŠãããããª
if ãš goto ã§ã«ãŒããäœããããªã€ãã¯æ¢ããŠã»ãããªãšã¯æããŸãã
äŸå€åŠçã«äœ¿ããã ã£ããããŸãããããããªããšæããŸãã
å®ã¯ãèªåã§äœã£ãã³ãŒãã£ã³ã°èŠçŽ(ãããŸãæ¹åãããŠãªãã§ããã©)
ã§ã¯äžå¿çŠæ¢ãããã§ãããcodeãåããããããªããšç¢ºä¿¡åºæ¥ã
ãããã®çç·Žè
ããã㊠goto ã䜿ãããå±é¢ãšããã®ãããã®ã¯çè§£
åºæ¥ãŸããæè¿ã¯ãã£ã±ã C++ ãªã®ã§äœ¿ãããšã¯ãããŸãããã©ã
å®éç§ã C ã ã£ãã䜿ãã®ãé©åã ãªãšæãããšã¯ãããŸããã
ã§ãã³ãŒãã£ã³ã°èŠçŽãäœãç«å Žãããããšããgoto ã¯äŸå€åŠç以å€ã«
䜿ããªããšãæžããŠãã誀èªãšããããžããŠããªè§£éããã奎ã¯ããèš³ã§ã
ãããªå¥Žã¯ goto ä¹±çºã®ã³ãŒãã«ãªã£ãŠããŸãå¯èœæ§ãããããããããš
ãgoto ä¹±çºã³ãŒããããflag ä¹±çºã³ãŒããã®äºè
æäžãšããäœã¬ãã«ã®
äºãã«ãªããã§ãã(T_T)ããgoto
ä¹±çºã³ãŒããã®æ¹ãã«ãŒãæ§é ãèŠãã«ãã
ã®ã§ã¯ãªãããšããããšã§ããããŠãã®ã³ãŒãã£ã³ã°èŠçŽã§ã¯
ãgoto çŠæ¢ãã«ããŸããã
ãŸãããããã¯ããããªé¢šã«ãããããããããªã?ãçšåºŠã®åŒ·å¶åã®èŠçŽ
ã ã£ãã®ãšãç§ä»¥äžã®ã¹ãã«ãæã£ã人ã«ã¯ãgoto 䜿ããªããšãŸã§ã¯
èšã£ãŠããªããšããç§ã®æå³ãæ±²ãã§ãããããã(ã¡ãããšåãã£ãŠãªã
ãªã䜿ããªããšããçšåºŠã®æå³ã ã£ãããš)ã®ãšããã£ãŠãããŸãæ··ä¹±ã¯
ãªãã£ãã®ã§ããã
# ãã£ããäœã£ãã³ãŒãã£ã³ã°èŠçŽãäœã£ãæ¬äººãå«ããŠãã ïœããå®ã
# æ°ããªããããæ©æŠãèµ·ããªãã£ããšãã説ãããã(æ žç)
---------
å±±æ éå¿ ãdebugã¯ïŒæ©åŸéãïŒæ©åé²ããã€ãŸã§ãã£ãŠãçµããªãã
e-mail : vy...@janis.or.jp
WWW page : http://www.janis.or.jp/users/vyama/
> ãšããããã§ãgotoå±éºè«ã«ããŸãåŒãããããããšãª
> ãããããšèªç±ã«gotoã䜿ãã»ããªã®ã§ãã...ã
C99 ã®ä»æ§ãå ãããšå€å°äºæ
ãå€ãããããããŸãããäŸãã°æ¬¡ã®ãããªã³ãŒ
ãã®å Žåã
int i = 0;
goto skip;
int j = 1;
skip:
goto ã§ã¯ãžã£ã³ãã¯ã§ããŸããããèŠåãåºããªãã³ã³ãã€ã©ããã£ãå Žå
å±éºã䌎ãå¯èœæ§ããããŸãã
ãŸãæè¿ã® C++ ã«ãããŠã¯ goto ã«ãã£ãŠåŸå§æ«ããããããªåŠçãæžãã
å ŽåãäŸå€ã«å¯ŸããŠå®å
šæ§ãä¿èšŒã§ããªããªãå¯èœæ§ããããŸãã
C++ ã¯ã¡ãã£ãšæ¬é¡ãããããŸãããæ°ããç¶æ³ãèŠè¶ããäžã§ goto ã䜿ã
ãªãããã«ç¿æ
£ä»ããããã«ããã®ã¯ããæªãã¯ãªããšæãã®ã§ããâŠã
ãããã§ãããïŒ
--
Shinji Nishimoto (西å
çåž)
mailto: nis...@osb.att.ne.jp
> C99 ã®ä»æ§ãå ãããšå€å°äºæ
ãå€ãããããããŸãããäŸãã°æ¬¡ã®ãããªã³ãŒ
> ãã®å Žåã
>
> int i = 0;
> goto skip;
> int j = 1;
> skip:
int i = 0;
;
int j = 1;
ã§ãé§ç®ã ãšæããã§ããã©.
(6.8.2) block-item:
declaration
statement
C99 絡ã¿ã§ goto ã䜿ããªãã®ã¯å¯å€é·é å (VLA) ãªã©ã䜿ã£ããšãã§ãã.
[#4] EXAMPLE 2 A goto statement is not allowed to jump past
any declarations of objects with variably modified types. A
jump within the scope, however, is permitted.
goto lab3; // invalid: going INTO scope of VLA.
{
double a[n];
a[j] = 4.4;
lab3:
a[j] = 3.3;
goto lab4; // valid: going WITHIN scope of VLA.
a[j] = 5.5;
lab4:
a[j] = 6.6;
}
goto lab4; // invalid: going INTO scope of VLA.
<abosmm$dkj$1...@cobalt01.janis.or.jp>ã®èšäºã«ãããŠ
vy...@janis.or.jpããã¯æžããŸããã
> On 13 May 2002 09:27:42 GMT, in <abo0ue$nij$1...@ns.src.ricoh.co.jp>,
> oh...@src.ricoh.co.jp (Junn Ohta) wrote:
>
> >ç§ã®èšèªéæŽã¯æ¬¡ã®ãããªæãã§ããŠã
:
> ç§èªèº«ã¯ãgotoæåŠçå矀ãã¿ãããªåçç¡çšã®æçµ¶åå¿ã¯ããŸããªããš
> æããŸãããã ããããã°ã©ã æžæ³ãã«æªãäŸãšããŠèŒã£ãŠãããããª
> if ãš goto ã§ã«ãŒããäœããããªã€ãã¯æ¢ããŠã»ãããªãšã¯æããŸãã
> äŸå€åŠçã«äœ¿ããã ã£ããããŸãããããããªããšæããŸãã
ç§ã¯ãgoto æåŠçå矀ãã§ã¯ãªãã§ãããèªåã§ã¯ãŸã goto ãæžããª
ãã§ããããæžãã«ããŠãããŸãããæžãåããæããã« goto ã䜿ã£
ãæ¹ãåããããããªãããšãèªæãªç¶æ³ã§ããªãéã䜿ããªãã§ãã
ã§ã倧æµã¯ããŸãæåã®çºæ³æç¹ã§ goto ã¯ãããã«æãèœã¡ãŠããã
ãšã倧åã
äŸãã°ãæ¢ã«åºãŠããäŸ(see: <abfch9$4f7$1...@narans.cc.nara-wu.ac.jp>)
ã ãš
void preparation1() {
æºå1;
if (æºå1倱æ) {
return;
}
preparation2();
åŸå§æ«1;
}
void preparation2() {
æºå2;
if (æºå2倱æ) {
return;
}
preparation3();
åŸå§æ«2;
}
void preparation3() {
æºå3;
if (æºå3倱æ) {
return;
}
do(); /* ãããªãããåŠç */
åŸå§æ«3;
}
ã£ãŠæ¹åã«ããããé ãè¡ã£ã¡ããããã¡ãããåæºåãåŸå§æ«ããã
ããããããªã goto ãšã䜿ã£ãããšãããæ¹åã«è¡ã£ã¡ãããšã¯æã
ãŸããããããªãã«æéããããšæããäžèšã®ãããªæ¹åã«æèãæå
(å奜ãïŒ^^;)ãã¡ãããšæãã§ãã
# LISP ããããããã«ãªã£ãŠä»¥éã¯ãäœèšã«ãã®åŸåã匷ããªã£ãŠãã
# æ°ãããã(^^;
> ã§ãã³ãŒãã£ã³ã°èŠçŽãäœãç«å Žãããããšããgoto ã¯äŸå€åŠç以å€ã«
> 䜿ããªããšãæžããŠãã誀èªãšããããžããŠããªè§£éããã奎ã¯ããèš³ã§ã
> ãããªå¥Žã¯ goto ä¹±çºã®ã³ãŒãã«ãªã£ãŠããŸãå¯èœæ§ãããããããããš
> ãgoto ä¹±çºã³ãŒããããflag ä¹±çºã³ãŒããã®äºè
æäžãšããäœã¬ãã«ã®
> äºãã«ãªããã§ãã(T_T)ããgoto ä¹±çºã³ãŒããã®æ¹ãã«ãŒãæ§é ãèŠã
> ã«ããã®ã§ã¯ãªãããšããããšã§ããããŠãã®ã³ãŒãã£ã³ã°èŠçŽã§ã¯
> ãgoto çŠæ¢ãã«ããŸããã
goto ã䜿ãäºã®åŸå€±ãè«ãåŸãªããªã䜿ããªã£ãŠæ¹éã¯ãééã£ãŠãã¯
ããªãã®ã§ã¯ãªãã§ãããããã§ãè«ãåŸã人ã§ããã°ãæãããã®èŠ
çŽã®åŒ·å¶åºŠãèšãåŸãã¯ãã§ããã®çµæäœ¿ã£ãæ¹ãåŸã§ãããšæãã°ã
èšæ©å¿å€ã«èŠçŽç Žãã«èµ°ããããªã(^^;
> # ãã£ããäœã£ãã³ãŒãã£ã³ã°èŠçŽãäœã£ãæ¬äººãå«ããŠãã ïœããå®ã
> # æ°ããªããããæ©æŠãèµ·ããªãã£ããšãã説ãããã(æ žç)
ç§ã®å Žåã¯ãååšããŠããã®ã¯ç¥ã£ãŠã¯ããããã©ãç Žãå¿
èŠãæãã
ãç Žãäºããããããªãããããã§éé£ã§ããããªãéãã¯ãèªåãã
仿ããŠæ©æŠãèµ·ããå¿
èŠãæããŠããªããã(^^;;;
# ãŸããäžèšããããã«æ®æ®µãã goto ãæèããæãèœã¡ãŠããã®ã§ã
# ãã®ç¹ã§ã¯ç Žãããããªãã®ã ããã©ã
--
æç° éè ïŒ ãšãŒã»ã¢ã€ã»ãœããæ ªåŒäŒç€Ÿãœãªã¥ãŒã·ã¥ã³éçºéš
E-mail tak...@aisoft.co.jp
ãååéã§æ±ºæããçãçç±ãæ·»ãããã
> %grep static *.h
> ã§çããã€ããã§ãããã
inline å±éãããããšãæåŸ
ããŠäœæããã颿°çŸ€ãããããããã§ãã
ãããã©ãããæå³ãæã€ãã§ãããã.
# èªå·±ãã©ããŒã®åœ¢ã«ãªã£ã¡ãŸããŸããã
倧å
ã®ããã¹ããäºã
ãã®å Žåã§ãããããããç¶æ³äŸåããšããçã
ããããªãã§ãã
ã³ãŒããæž¡ãããŠæ¹é ãäŸé Œããããããªæ±ã代ç©ãæž¡ãããæè¶£è¿ã
ãããäœè£ããããªããïŒïŒæ®µã©ããããã£ãšã¯ã±ã¯ã«ã©ã³ä»£ç©ã«æ¹é
ããŠã¿ããããŠã
# åè«ã ããã(^^;;;
æ¯ãã®åŠããå°ããç¶æ³äŸåã§ããäºã¯å€ãã
ããŒããç§ã¯ããã¯ãããªããªã(^^;
ãšããããå°ãªããšã
preparation1()
preparation2()
preparation3()
do()
ãšãã颿°ã䞊ãã§ãããpraparation...()ãçµãã£ãŠ
ããdo()ãå®è¡ãããšãããµãã«èªããããã
éã®ãããããããã°ããããããµãã«(鿬¡çã«)å®è¡
ããã®ã§ãªããã°ãèªåã§ã¯é¢æ°ã«ããããåœåã¯ããª
ããšæããŸãã
ãŸãã
> void preparation1() {
> æºå1;
> if (æºå1倱æ) {
> return;
> }
> preparation2();
> åŸå§æ«1;
> }
ãã®é¢æ°ã ããçºããå ŽåãçŽç²ã«æ§é åããã°ã©ãã³
ã°(å
¥å£åºå£ãšãã«1)ã®ååãã€ãã¬ããšãããããã
ã§ã¯ãªããŠ
void preparation1() {
æºå1;
if (æºå1æå) {
preparation2();
åŸå§æ«1;
}
}
ãšãªãã¯ãã§ãããããããããªãã®ãªãæç°ãããæž
ããããããªé¢æ°ã®ãã¹ããäœ¿ãæ¹æ³ãã颚éããå°ã
ããããcosmeticã«ãããªãããã§ãç§ã¯gotoã䜿ããã
ãšå£°ã倧ã«ããŠå«ã¶ã»ã©ã®ãã®ã§ã¯ãªãã®ã§ãããã
ã§ãç§ããã¯ã
void preparation1() {
æºå1;
if (æºå1倱æ) {
return;
}
preparation2();
åŸå§æ«1;
}
ãšæžãããããªãããšããã°ã
æºå1;
preparation2();
åŸå§æ«1;
ã¯æ£åžžã«ãŒãã§ã¯é次å®è¡ããããã®ã ãããã ããã€
ã³ãã³ãã¬ãã«ãåãã«ããããšããæ°æã¡ããããã§
ãããã
åãçç±ã§ã
æºå1;
...
err = TRUE;
preparation2();
if (err)
åŸå§æ«1;
ããã
æºå1;
...
goto err;
preparation2();
err:
åŸå§æ«1;
ã®ã»ããç§ã«ãšã£ãŠã¯èŠéããããã£ããããŸãã
# èšãèš³èšäº (^^;
<abq51b$e5g$1...@ns.src.ricoh.co.jp>ã®èšäºã«ãããŠ
oh...@src.ricoh.co.jpããã¯æžããŸããã
> ãšããããå°ãªããšã
> preparation1()
> preparation2()
> preparation3()
> do()
> ãšãã颿°ã䞊ãã§ãããpraparation...()ãçµãã£ãŠ
> ããdo()ãå®è¡ãããšãããµãã«èªããããã
>
> éã®ãããããããã°ããããããµãã«(鿬¡çã«)å®è¡
> ããã®ã§ãªããã°ãèªåã§ã¯é¢æ°ã«ããããåœåã¯ããª
> ããšæããŸãã
鿬¡æ§äºã ã¯ãããŠããç§ãå®éã«ã¯é¢æ°åã¯ããã¯ããªãã§ãããã
ä»åã¯ãæºåããšãæžãããŠãããããããã«ã€ããŠãã(preparation)
æžããã ãã§ãå®éã ã£ãããæºå[1-3]ãã®å
容ã«åŸã£ã颿°åãèã
ãŠä»ããã§ããã
# ãããããããpreparation(), subpreparation(), subsubpreparation()
# ã ã£ããã(^^; ãã£ã¡ã®æ¹ãã鿬¡æ§ã¯æããªãããã©ã
# å
šéšæžããš preparation_and_disposition()...ãšãã ããããã©ãã
# ããã«ããâŠâŠãŸãããããªç¶æ³äŸåãªåœåã«é¢ãã話ãããŠããã®
# å Žã§ã¯ãããªãã
> ãã®é¢æ°ã ããçºããå ŽåãçŽç²ã«æ§é åããã°ã©ãã³
> ã°(å
¥å£åºå£ãšãã«1)ã®ååãã€ãã¬ããšãããããã
> ã§ã¯ãªããŠ
>
> void preparation1() {
> æºå1;
> if (æºå1æå) {
> preparation2();
> åŸå§æ«1;
> }
> }
>
> ãšãªãã¯ãã§ãããã
ããã§ããå®ã¯ãèšäºãæžããéã®ç¬¬äžçš¿ã§ã¯ãããªã£ãŠããŸãããã
> ã§ãç§ããã¯ã
>
> void preparation1() {
> æºå1;
> if (æºå1倱æ) {
> return;
> }
> preparation2();
> åŸå§æ«1;
> }
>
> ãšæžãããããªãããšããã°ã
>
> æºå1;
> preparation2();
> åŸå§æ«1;
>
> ã¯æ£åžžã«ãŒãã§ã¯é次å®è¡ããããã®ã ãããã ããã€
> ã³ãã³ãã¬ãã«ãåãã«ããããšããæ°æã¡ããããã§
> ãããã
ãã¯ãåæ§ãªæè課çšãçµãŠä»¶ã®ã³ãŒãã«çŽããŸããã
éã³ã§ã¡ãã£ãšæžããŠã¿ãçšåºŠãªãPL/IãAdaãèå€åŠ
çLispãPrologããããŸãããããŸæžããšãããããæž
ããŸãããã:-)
> ã§ãã³ãŒãã£ã³ã°èŠçŽãäœãç«å Žãããããšããgoto ã¯äŸå€åŠç以å€ã«
> 䜿ããªããšãæžããŠãã誀èªãšããããžããŠããªè§£éããã奎ã¯ããèš³ã§ã
> ãããªå¥Žã¯ goto ä¹±çºã®ã³ãŒãã«ãªã£ãŠããŸãå¯èœæ§ãããããããããš
> ãgoto ä¹±çºã³ãŒããããflag ä¹±çºã³ãŒããã®äºè
æäžãšããäœã¬ãã«ã®
> äºãã«ãªããã§ãã(T_T)ããgotoä¹±çºã³ãŒããã®æ¹ãã«ãŒãæ§é ãèŠãã«ãã
> ã®ã§ã¯ãªãããšããããšã§ããããŠãã®ã³ãŒãã£ã³ã°èŠçŽã§ã¯
> ãgoto çŠæ¢ãã«ããŸããã
ããããèããããã§ãããããã§ãã誀èªãšããããž
ããŠããªè§£éãã£ãŠã©ãããããããŸã? ç§ã¯ããŸãæ
ãã€ããªããªã
ç§ããäŸå€åŠçããšæžãããã®ã®äžã«ã¯ãã»ãã®äººãã
ã¿ãããäŸå€åŠçãããªããããããªãã®ãå«ãŸããŠã
ããããããŸãããããããã«ãæ£åžžãªããŒã¿ã«ã€ããŠ
ã¯æ¬æ¥ã®å¶åŸ¡æ§é ã§åŠçãããã®ã«ãŒãããå€ãããã®
ãæ±ããšãã«ã¯gotoã§ã·ã³ã¯ããããŠãããŸããªãããš
ããèãã§ããå
¥åã®æ§é ããããããšãã«
goto again;
ã§ææ»ãããããšãã§ããã
éã«ç§ããããã¯ãã£ãŠã¯ãããªããªããšæãã®ã¯ãè€
éãªå
¥åæ§é ãæ±ããšãã«ããã®æ§é ãæå¿«ãªå¶åŸ¡æ§é
ã«åæ ã§ãããgotoã䜿ã£ãŠã€ãã¯ãã®åŠçãããããš
ããŠãããã®ãããã®gotoã¯äœãããgoto?ããšèããŠ
ã¿ãŠãåçŽã§ãªãçããè¿ã£ãŠããããããããgotoã§
ããå¯èœæ§ãé«ãã§ãã:-)
ã³ãŒãã£ã³ã°èŠçŽã«ããããããgotoã¯çŠæ¢ããšæžããŠ
ããã°ãããšæãã®ã ãã©ãã ãããª? :-)
> ããã®gotoã¯äœãããgoto?ããšèããŠã¿ãŠãåçŽã§ãªãçããè¿ã£ãŠãã
> ããããããgotoã§ããå¯èœæ§ãé«ãã§ãã:-)
ãåçŽãããªããããšèšããšãããŒ? åçŽãããªãã§ããããšçããã¹ãŽã€äºº
ã ã£ãã⊠:-)
ãããšã§ãããããšãã°ä»åãç°éšããã¯ããã¹ã9段
ã®ããã°ã©ã ããæã¡åºããããã§ããã©ããã®ããã°
ã©ã ãã©ãããŠãã®ããã«äœãããŠããã®ãã«ã€ããŠã¯
äœã説æãããŠããªãããã§ãã
ãã®ããã¹ã9段ããããããªãã®æå³ããã£ãŠãããª
ã£ãŠããã®ãªããç§ãªãäœã®ããããããªããã1段远
å ãããšããã§ããéã«ããããªãã³ãŒãã£ã³ã°ã®ãã
ã§ããã¹ã9段ãã«ãªã£ãŠããã®ãªããåŠçã远å ãã
ããªãã«é¢ä¿ãªãæ§é ã«æãå
¥ããããªãã§ãããã
ã€ãŸããçŸç¶ã«å¯ŸããŠããããã©ãããŠãããªã£ãŠãã
ã®ããã説æããã«ãããªããªãã©ãããŸãã?ããšè
ãããŠãããããªãã®ã«çŸå®å³ã¯ãªãããçãããããª
ãã®ã§ããã
# ã ããç§ã¯å
·äœäŸãã䌺ãããã®ã ããã©ãããçŸå Ž
# ã§ãããããã®ãäœãããŠããã®ãã«ã€ããŠã瀺ããŠ
# ã»ãããšèŠæ±ãããããããããããç岡ããããå
# æãèæ¯ãå
šã瀺ããã«ããšãã£ãããã®ãåãäžæº
# ãããããã§ãããã
å¯ããã«ãç°éšããã¯ããã¹ã9段ã®ããã°ã©ã ããªã©
ãšãããã®ã¯ããã®ååšèªäœãééã£ãŠããããšããå
çŽãªäŸ¡å€èгããæã¡ãªã®ã§ã¯ãªãããšæããŸãããããŸ
ã§ã®ãã¹ãŠã®å®äŸã«ã€ããŠããããã ããããã®æã®äŸ
ãçŸå®ã«ã©ããããåé¡ã«ãªã£ãŠããã®ããåæãšããŠ
瀺ãããšããèããåºãŠããªãã
ãŸããç°éšããã¯ãããšããåèæžãåŒããŠãèªåã®æ¹
éãæ£ããããšã瀺ãããšãããŸããããããã®åèæž
ã§ã©ãããŠããããããšãæžãããã(èæ¯)ã«ã€ããŠã®
é
æ
®ããã£ãœãæãèœã¡ãŠããã
åæãèæ¯ããªãã«æªãã³ãŒãã¯æªãã³ãŒãã§ããããš
ãããã°ãããããã³ãŒãããã¶ãåºãReview-Cã®ãã
ãªããŒã«ã®å®£äŒã«ããªãããã§ããããŸãç§ã¯ç°éšãã
ã宣äŒå¹æãèããŠæ¬¡ã
ã«ããããäŸãåºããŠãããšã¯
æã£ãŠããŸãããéã«ãç°éšãããèªèº«ãããããåçŽ
ãªäŸ¡å€èгããæã¡ã ãããããReview-Cã®ãããªããŒã«
ãäœã£ãã宣äŒãããããããªãã®ã ãšèããŸãã
ãšããããã§ç°éšããã«ã¯ãä»äººãã©ãããããšãèã
ãŠè°è«ããŠããã®ãã«ã€ããŠãããå°ãçªã£èŸŒãã§èã
ãããšãããããããŠãããŸãã
C99ãC++ã«ã€ããŠã¯èããŠããªãã£ãã®ã§ãããããå
é¡ã¯ããã®ãããããŸãããããgotoã䜿ããªãããã«
ç¿æ
£ä»ãããããšã«ãã£ãŠç¡æ¡ä»¶ã«ãã¡ãªãããå
¥ã蟌
ãã®ã¯ãã£ã±ããããããããŸããã
ãã£ã±ããç¶æ³ã«ãããã§ããã:-)
ããã¯ãããããç°éšãããææããŠãããããªç¡ç¥ã«
ããäŸã§ã¯ãªãã ãããšç§ã¯èããŠããŸããã®ã§ã
> æ¥æ¬äžã§ã
> staticã®æå³ããç¥ããªããã§äœ¿çšããŠããäºäŸã¯ã
> 容æã«æ³åãåºæ¥ãã®ã§ã¯ïŒ
ãã¡ãã¯ã¡ã£ãšãæ³åã§ããŸããã
> ä»åã®ã¹ã¬ããã®ã ãã¹ãïŒæ®µã®ããã°ã©ã ãã§ããã
> (1) goto æãçµ¶å¯ŸçŠæ¢ãšããŠããæãããäºã¯
> 倪ç°ãããªãæ³åã§ããã§ãããã
> ïŒæ¬§å·ã®èªåè»ç£æ¥çã®ïŒ£èšèªããã°ã©ã ã«ãŒã«ã§ããã
> ãã»ã©ã«ãŒã«ïŒã ã£ãããªïŒã§ããgoto ã«ã¯åŠå®çã§ãã
ããã»ã©ã«ãŒã«ããšããã®ã¯ç¥ããŸããããæ€çŽ¢ããŠã
èŠã€ãããŸããã§ããããŸããgotoçµ¶å¯ŸçŠæ¢ãã®çŸå Žã
ååšããã ãããšããããšã¯æ³åã§ããŸãã
> (2)ã§ãgoto ã䜿çšããã ãã§ãåå
¥æåŠãšããŠããæããããäºã¯
> 倪ç°ãããªãæ³åã§ããã§ãããã
> ïŒgoto ã䜿çšãããšããã»ã©ã«ãŒã«éµå®ã§ãªããªã£ãŠããŸããçãªã©ã
ããããŸãæ³åã¯ã§ããã
> (3)ãgotoæãçŠæ¢ããããšãããã°ã©ãã¯
> ã»ãã¹ããæ·±ããããã
> ã»ãã©ã°ã®å€çšãšãïœïœæãç
©éã«ããã
> ã®äºè
æäžãè¿«ãããã
> ã§ã ãã¹ããç°åžžã«æ·±ããªãå Žåãããã
ãã¹ãããç°åžžã«ãæ·±ãã®ãªãæ£åžžã«çŽãã°ããã®ã§ãã
çç±ããã£ãŠæ·±ãã®ãªãããã¯ããã§ããŸããªãã§ãã
ãããããã¯gotoãçŠæ¢ãããŠãããã©ãããšã¯ç¡é¢ä¿
ã«çºçããããšã§ãã
> ïŒãã¹ã9段ã10段ã¯åé¡ã§ã¯ãªããšã
> ïŒèšããããšçµ¶å¥ããŠããŸããŸããã
ããããã®ãŸãŸçµ¶å¥ããŠããŠãã ããã:-)
On 14 May 2002 02:58:22 GMT, in <abpuge$g9b$1...@news01.highway.ne.jp>,
tak...@aisoft.co.jp (Narita Takaoki) wrote:
>ã§ã倧æµã¯ããŸãæåã®çºæ³æç¹ã§ goto ã¯ãããã«æãèœã¡ãŠããã
>ãšã倧åã
struct foo {
int * TableHeight;
int * TableWidth;
<snip>
};
ã¿ãããªæãã§ã沢山fieldã䞊ãã§ããæ§é äœãèšå®ãããããªé¢æ°ã§ã
åã
ã®fieldã®å·®ãå Žæãmallocãšãã§ã¡ã¢ãªç¢ºä¿ããããªããŠå Žåã
ãããŸããã?ã§ã颿°ã®æåã§ãããã®fieldããäžæŠNULLã§åæåããŠ
ãããŠãéäžã§ã¡ã¢ãªç¢ºä¿ã«å€±æããããgoto ã§
error:
free(TableHeight);
free(TableWidth);
<snip>
return NOT_SUCCESS;
ã¿ãããªå Žæã«é£ã°ããšãã£ãŠãç§ã¯ãããã£ãŠããããªæ°ããããã§ã
ãæåã®çºæ³æç¹ã§ goto ã¯ãããã«æãèœã¡ããã£ãŠããšã¯ãªããããª
æ°ãããŸãã
# åæèšå®é¢æ°ãé·ããªãããã ã£ããããã£ãšçްãã颿°ã«åå²ãããš
# æããã©ãåºæ¬æŠç¥ã¯åãã
Cã ãšçµæ§ãããã¡ãªç¶æ³ã®ãããªæ°ããããã§ãããç§ã®æèŠããããã
ã®ããªã(æè¿ã¯ã»ãšãã©C++ãªãã§throwããŠçµããâŠ)
JAVAã ãšãæ§é äœfooåã®å€æ°tmpã¿ãããªã®ã«ãnewã§ç¢ºä¿ããçµæã代å
¥
ããŠãããŠãå
šéšç¢ºä¿åºæ¥ããããã®æ§é äœãã³ããŒããŠçµããã確ä¿åºæ¥
ãªãã£ãããtmpãç Žæ£ããã°ã確ä¿ããã¡ã¢ãªãé©åœãªçŽã«ç Žæ£ãããã
(ãšããçè§£ã§ãã£ãŠãŸã?)ãããªä»çµã¿ãªã確ãã«æ¥œã§ãããã
>çŽã®åŒ·å¶åºŠãèšãåŸãã¯ãã§ããã®çµæäœ¿ã£ãæ¹ãåŸã§ãããšæãã°ã
>èšæ©å¿å€ã«èŠçŽç Žãã«èµ°ããããªã(^^;
ã§ããã®èŠçŽãæžããæ¬äººãäžèšã®ãããªç¶æ³ã§gotoã䜿ã£ãŠãããããã
ã§ããç§ã®æžããèŠçŽãšããã®ã³ãŒãã®äž¡æ¹ãèªãã 人ã¯ã©ããªææ³ã
æã£ããã§ããããã^_^;ãã£ãšãç§ã®æžããã³ãŒãã£ã³ã°èŠçŽã¯ãããªåŒ·å¶åºŠã®
è©äŸ¡ãã§ããªã人åãã®äžå®ã®æéã«ãªãããã«æžããã€ããã§ããã瀟å¡å
šå¡ã«
匷å¶ãããšãªããšã倿°åã®ã€ãæ¹ã ãã§ã倧è«äºã«ãªãããâŠã
>ããã§éé£ã§ããããªãéãã¯ã
åæããã®ã¯ãã³ãŒãã£ã³ã°èŠçŽã«åŸã£ãŠã¯ããããã©ãçäžå°œãªéé£ãã§ããã^_-
çžæã«çããããã ã£ãããç§ãšããŠã¯èª¬åŸãããŠã»ãããªãã^_^;ãšããæå³
äžæãªäºããããªå
¬ã®å Žã§èšã£ãŠã¿ããããã:-)
ç³ãèš³ãããŸãããããžã£ã³ãã§ããªãããšæžããã®ã¯è¡ãéãã§ããã
ææ³äžèšè¿°å¯èœã§ããããšã¯ç¥ã£ãŠããŸãããããã®å®£èšãè·šãã goto ãå
æ³ã§ããã®ãéåæ³ãªã®ãã¯ç¥ããŸããã§ããã
身è¿ã«ãã C++ ã³ã³ãã€ã©ã§ã¯ãã®ãããªèšè¿°ã¯èš±ãããªããããªã®ã§ããã
C99 ãš C++ ã«ãããŠå®£èšãè·šãã goto ã®æ±ãã«éãããããšããããšãè
ãããããã§ããããã
ãã®èŸºãã®äºããåãã§ããããæãé ããããšæããŸãã
äžèšã®ä»¶ã
http://news.dinf.ne.jp/news/fj/comp/lang/c/msg00027.html
http://news.dinf.ne.jp/news/fj/comp/lang/c/msg00037.html
http://news.dinf.ne.jp/news/fj/comp/lang/c/msg00071.html
ãããããåç §äžããã
--
以äž
èŠãŠãåæäœ¿ã£ãŠ http://rec.ncos.co.jp
"Kazuo Fox Dohzono" <doh...@hf.rim.or.jp> wrote in message
news:abq1m1$oqp$2...@news2.rim.or.jp...
"Junn Ohta" <oh...@src.ricoh.co.jp> wrote in message
news:abq9je$fdf$1...@ns.src.ricoh.co.jp...
> fj.comp.lang.cã®èšäº<abol0d$ahc$1...@bgsv5906.tk.mesh.ad.jp>ã§
> ta...@mug.biglobe.ne.jpããã¯æžããŸããã
> > > ç§ã¯ç°éšãããæã¡åºãå®äŸã«ã»ãšãã©çŸå®å³ãæãã
> > > ããªããã
> > fj.comp.lang.cã®åžžé£ã®å€ªç°ãããªãã
> > çŸå®å³ãæãããããšæãã®ã§ããã
> > ããã§ããªãæ§ã§ããã
>
> ãããšã§ãããããšãã°ä»åãç°éšããã¯ããã¹ã9段
> ã®ããã°ã©ã ããæã¡åºããããã§ããã©ããã®ããã°
> ã©ã ãã©ãããŠãã®ããã«äœãããŠããã®ãã«ã€ããŠã¯
> äœã説æãããŠããªãããã§ãã
ãã€ã¯ã§ããã
åãç¥ããªããã§ããã
ã ããããã¹ã9段ã10段ãŸã§æé·ããŠããŸãéçšã«
èå³ãããã®ã§ããã
> ãã®ããã¹ã9段ããããããªãã®æå³ããã£ãŠãããª
> ã£ãŠããã®ãªããç§ãªãäœã®ããããããªããã1段远
> å ãããšããã§ãã
äŸãã°ã
ïœïœïœãªããã®äžã§ãã
ãã¹ãïŒïœïŒæ®µã¯ããã«ãããŸãã
ç¥ã£ãŠãŠãã£ãŠãå Žåã¯ãã©ãã§ãè¯ãã®ã§ãã
> ã€ãŸããçŸç¶ã«å¯ŸããŠããããã©ãããŠãããªã£ãŠãã
> ã®ããã説æããã«ãããªããªãã©ãããŸãã?ããšè
> ãããŠãããããªãã®ã«çŸå®å³ã¯ãªãããçãããããª
> ãã®ã§ããã
ãçŸç¶ãã¹ãïŒïŒæ®µã®ç©ãããã
ãªããã¹ãïŒïŒæ®µã«ããªã£ãã®ã ããïŒ
ããªããªãã©ãããŸãã?
ããªããªãã©ãããŸãããïŒã
ãšèšã質åã¯ãçŸå®å³ããããŸãããïŒ
> éã«ããããªãã³ãŒãã£ã³ã°ã®ãã
> ã§ããã¹ã9段ãã«ãªã£ãŠããã®ãªããåŠçã远å ãã
> ããªãã«é¢ä¿ãªãæ§é ã«æãå
¥ããããªãã§ãããã
ã§ããæãå
¥ããããªãã£ãŠã
ãã£ãŠã¯ãããªãããšèšãèããããäºãã
SAKAMOTO ããã®çãã§åŸãŸããã
http://news.dinf.ne.jp/news/fj/comp/lang/c/msg00281.html
> # ã ããç§ã¯å
·äœäŸãã䌺ãããã®ã ããã©ãããçŸå Ž
> # ã§ãããããã®ãäœãããŠããã®ãã«ã€ããŠã瀺ããŠ
> # ã»ãããšèŠæ±ãããããããããããç岡ããããå
> # æãèæ¯ãå
šã瀺ããã«ããšãã£ãããã®ãåãäžæº
> # ãããããã§ãããã
ãµãã
ééããç¯ãã®ã¯ãåºæã®çŸå Žãšãèãã§ããããïŒ
ç§ã¯ã
ã©ãã®çŸå Žã§ãã
åãæ§ãªééããã
åãæ§ã«ç¯ããšèããŠããã®ã§ããã
ã§ã
åãæ§ãªééããã
åãæ§ã«ç¯ãéçšã«èå³ãããã®ã§ãã
> å¯ããã«ãç°éšããã¯ããã¹ã9段ã®ããã°ã©ã ããªã©
> ãšãããã®ã¯ããã®ååšèªäœãééã£ãŠããããšããå
> çŽãªäŸ¡å€èгããæã¡ãªã®ã§ã¯ãªãããšæããŸãã
ã¯ããåçŽã§ãã
ããã¹ã9段ã®ããã°ã©ã ããªã©å«ãã§ãã
ïŒå€§æµã¯ãã ã®ãæ±ããœãŒã¹ã³ãŒãã ããã
åºæ¥ãã°ããã®ååšãæ¶ãããã
> ãããŸã§ã®ãã¹ãŠã®å®äŸã«ã€ããŠããããã ããããã®æã®äŸ
> ãçŸå®ã«ã©ããããåé¡ã«ãªã£ãŠããã®ããåæãšããŠ
> 瀺ãããšããèããåºãŠããªãã
ãããã倪ç°ãããšåã®éãã§ããã
倪ç°èª¬
ç°éšã瀺ãäŸã¯ç¹ç°ãªäŸã§ãããæ
ã«èæ¯èª¬æãããã
ç°éšèª¬ã
ç°éšã瀺ãäŸã¯ç¹ç°ãªäŸã§ã¯ãªããæ
ã«èæ¯èª¬æã¯ãããªãã
> ãŸããç°éšããã¯ãããšããåèæžãåŒããŠãèªåã®æ¹
> éãæ£ããããšã瀺ãããšãããŸããããããã®åèæž
> ã§ã©ãããŠããããããšãæžãããã(èæ¯)ã«ã€ããŠã®
> é
æ
®ããã£ãœãæãèœã¡ãŠããã
èå³ã®ãã人ããã®æ¬è²·ã£ãŠèªãã°ã
èæ¯æžããŠãŸãããã
> åæãèæ¯ããªãã«æªãã³ãŒãã¯æªãã³ãŒãã§ããããš
> ãããã°ãããããã³ãŒãããã¶ãåºãReview-Cã®ãã
> ãªããŒã«ã®å®£äŒã«ããªãããã§ããã
> ãŸãç§ã¯ç°éšãã
> ã宣äŒå¹æãèããŠæ¬¡ã
ã«ããããäŸãåºããŠãããšã¯
> æã£ãŠããŸããã
> éã«ãç°éšãããèªèº«ãããããåçŽ
> ãªäŸ¡å€èгããæã¡ã ãããããReview-Cã®ãããªããŒã«
> ãäœã£ãã宣äŒãããããããªãã®ã ãšèããŸãã
ããã§ãããåçŽã§ãã
ããšã次ã
ã«ããããäŸãåºãçç±ã®äžã€ã«ã
ãšåŠäŒã®äººãã
ããšãã§ãæ¬ãã玹ä»ããå¿çã«
䌌ãç©ããããŸãã
ïŒãšçºäŒããåç¥ãªããã°ãæ¬å±ããã«ãããŸãã
> ãšããããã§ç°éšããã«ã¯ãä»äººãã©ãããããšãèã
> ãŠè°è«ããŠããã®ãã«ã€ããŠãããå°ãçªã£èŸŒãã§èã
> ãããšãããããããŠãããŸãã
åã¯è°è«å¥œãã§ã¯ãããŸããã
ããããªã®ããããŸãããçããã®æã¯ã©ãïŒã
çšåºŠã®æçš¿ã§ãã
> ãŸããç°éšããã¯ãããšããåèæžãåŒããŠãèªåã®æ¹
> éãæ£ããããšã瀺ãããšãããŸããããããã®åèæž
> ã§ã©ãããŠããããããšãæžãããã(èæ¯)ã«ã€ããŠã®
> é
æ
®ããã£ãœãæãèœã¡ãŠããã
ãã®ããããéç®±ãšäŒŒãŠããã§ãããã
æ¬è³ªçãªçè§£ãªãã«ãææ¡ã»ã¹ããŒã¬ã³ãåé¢ã ãä¿¡ãã¡ãã£ãŠããšããâŠâŠ
ä¿¡ãã¡ãã£ãŠãã®ã¿ãªãããæãæ£ãããŠããšã
ç¥ç°æåº <ca...@kgc.co.jp>
ãèšèšã«åé¡ãããã®ã§ã¯ããšããããèšèšããã«è£œäœããŠããã®ã§ã¯ã
--
èµ€ç
çŠ
tabe wrote:
> ç°éšã瀺ãäŸã¯ç¹ç°ãªäŸã§ã¯ãªããæ ã«èæ¯èª¬æã¯ãããªãã
ç¹ç°ãªäŸã§ãããããªããããããããªãã«èæ¯èª¬æãããã®ã¯
åºæ¬çãªãããŒã§ãã
--
cog...@sp.hudson.co.jp
æ ªåŒäŒç€Ÿãããœã³
ã³ã¢ã»ãã¯ãããžãŒäºæ¥æ¬éš
ã·ã¹ãã éš ãœãããŠã§ã¢èª²
ç岡 å¿(Kumaoka Shinobu)
In article <abs5md$dte$1...@bgsv5906.tk.mesh.ad.jp>
"tabe" <ta...@mug.biglobe.ne.jp> writes:
> ãã€ã¯ã§ããã
> åãç¥ããªããã§ããã
> ã ããããã¹ã9段ã10段ãŸã§æé·ããŠããŸãéçšã«
> èå³ãããã®ã§ããã
ã€ãŸããããã§å®äŸãéããŠããããå売ã®ãã¿ã«ããããš
ããŠãã£ãããã®ã§ããããïŒ
> èŠãŠãåæäœ¿ã£ãŠ http://rec.ncos.co.jp
çžå€ããã fj ã® AUP ã«éåãã宣äŒã®ããã®æçš¿ã®ããã§ããã
ã»ã
ææ¡ãã¹ããŒã¬ã³ãæ¬è³ªçãªçè§£ãªãã«æãæ£ããããšã¯ãªãã®ã§ã¯ïŒ
éã«ææ¡ãã¹ããŒã¬ã³ãæžããéå»ã®å倧ãªäººã«å
±æãããããã
éèŠã ãšæããŠæãæ£ãããšæããã§ããã©ïŒ
In article <abrkfv$p57$1...@newsflood.osaka.att.ne.jp>
"Shinji Nishimoto" <nis...@osb.att.ne.jp> writes:
> > int i = 0;
> > ;
> > int j = 1;
> >
> > ã§ãé§ç®ã ãšæããã§ããã©.
> >
> > (6.8.2) block-item:
> > declaration
> > statement
ãããã©ããé§ç®ããªãã§ãããïŒ
C99 (ANSI+ISO+IEC+9899-1999.pdf) ã® Foreword ã®ç¬¬ 5 é
ã«ã¯ã
C90 ããã®å€æŽç¹ã®ã²ãšã€ãšããŠã
- mixed declarations and code
ã£ãŠã®ããããããŠãŸããã©ã
ïŒïŒ
> 身è¿ã«ãã C++ ã³ã³ãã€ã©ã§ã¯ãã®ãããªèšè¿°ã¯èš±ãããªããããªã®ã§ããã
> C99 ãš C++ ã«ãããŠå®£èšãè·šãã goto ã®æ±ãã«éãããããšããããšãè
> ãããããã§ããããã
C++ (ISO+IEC+14882-1998.pdf) ã®å Žåã6.7 Declaration statement
ã®ç¬¬ 3 é
ã«ã
It is possible to transfer into a block, but not in a way
that bypasses declarations with initialization. A program
that jumps from a point where a local variable with automatic
storage duration is not in scope to a point where it is in
scope is ill-formed unless the variable has POD type (3.9)
and is declared without an initializer (8.5).
ãšããããã§ãC++ ã§ãŸãããã®ã¯ POD ãã€åæå€ãæããªããã®
ã ãã§ãã
ã€ãŸããC++ ã§ã¯ã
int i = 0;
ã¯ãŸãããªããã©ã
int i;
i = 0;
ã¯ãŸãããŸããC99 ãªãäž¡æ¹ãŸãããŸãã
ã»ã
> ïŒãã¹ã9段ã10段ã¯åé¡ã§ã¯ãªããšã
> ïŒèšããããšçµ¶å¥ããŠããŸããŸããã
ä»ä»äºã§æžããŠããããã°ã©ã ããã£ãšèª¿ã¹ããããããã®ããã£ããã§ãã,
{ // function entry
for ()
{
{ // block
switch ()
{
while ()
{
if ()
{
if ()
{
while ()
{
if ()
{
for ()
{
while ()
{
if ()
;
}}}}}}}}}}} // äžå¿éããŠããã :-)
äœãåé¡ããããã§ãããã.
# ã¡ãªã¿ã«ããŒã¿ã« 2 äžè¡çšåºŠã®çµã¿èŸŒã¿ç³»ã§, ãã®ã¢ãžã¥ãŒã«ã¯ 150 è¡çš
# 床ã§ã.
ãã®ããã¹ã9段ã10段ãã®ããã°ã©ã ãé©åãªãã®ãª
ãããã§ããã®ã ãããæé·ããŠããŸãéçšããªããŠã
ã®ãæã¡åºããŠãæå³ããªãããã§ããéã«ããã®ãã
ã°ã©ã ãã²ã©ãããã°ã©ã ãªããããã¹ã9段ã10段ã
ãã©ããã«ãŸã£ãããããããããã¯ãã²ã©ãããã°ã©
ã ã§ããããã
ãããã£ãŠãåæãèæ¯ãèæ
®ããããšãªãããããã
ãšã«èå³ããã€ãšããã®ã¯ãè°è«ãšããŠæµ
ãããšãããã
ç§ããã¿ãã°äžå¥å
šã§ãã
ç°éšãããããã¹ã9段ã10段ããäœããã®ææšãšããŠ
æå¹ã§ãããšãèããªã®ã§ãããããã®æ ¹æ ã瀺ããŠã
ãè°è«ãå§ããã»ããããã§ããã
> ãçŸç¶ãã¹ãïŒïŒæ®µã®ç©ãããã
> ãªããã¹ãïŒïŒæ®µã«ããªã£ãã®ã ããïŒ
> ããªããªãã©ãããŸãã?
> ããªããªãã©ãããŸãããïŒã
> ãšèšã質åã¯ãçŸå®å³ããããŸãããïŒ
å ·äœäŸãããã°çŸå®å³ãããã§ãããã
> ãµãã
> ééããç¯ãã®ã¯ãåºæã®çŸå Žãšãèãã§ããããïŒ
ãããã£ã±ã«ããã°ãããã§ãã
> ç§ã¯ã
> ã©ãã®çŸå Žã§ãã
> åãæ§ãªééããã
> åãæ§ã«ç¯ããšèããŠããã®ã§ããã
ãããªãã°ãããå°ãçŸå®ã®éçºçŸå Žã§å
·äœäŸãåéã
ãããšããå§ããããããããã§ããã?
> ãããã倪ç°ãããšåã®éãã§ããã
> 倪ç°èª¬
> ç°éšã瀺ãäŸã¯ç¹ç°ãªäŸã§ãããæ
ã«èæ¯èª¬æãããã
> ç°éšèª¬ã
> ç°éšã瀺ãäŸã¯ç¹ç°ãªäŸã§ã¯ãªããæ
ã«èæ¯èª¬æã¯ãããªãã
ç¹ç°ãªäŸã§ãããããªããããããã®ããã¹ã9段ã10
段ãã®ããã°ã©ã ãã®ãã®ãèŠãªãããããè°è«ããã«
å€ããã»ã©ã®ããšã¯ãããªãã®ã§ãããŸãç°éšããã¯è°
è«ãã奜ãã§ãªããšã®ããšã§ãããããã®ãããã¯ã©ã
ã§ãããã®ãããããŸãããã
> åã¯è°è«å¥œãã§ã¯ãããŸããã
> ããããªã®ããããŸãããçããã®æã¯ã©ãïŒã
> çšåºŠã®æçš¿ã§ãã
ããã¯èªåã®æç« ãèªãã§ãããä»äººã«å€±ç€Œã ãšæããªã
ãããããã®ç®çãããªãã®ãªãæçš¿ããããŠãã ããã
> ãããã©ããé§ç®ããªãã§ãããïŒ
ãã¿ãŸãã, æããŠã㊠or ãªã®ãé åºãæå³ãæã€ãšæã£ãŠããŸããŸãã.
(6.8.2) block-item:
declaration
statement
次ã®é ã§ããã°ã©ã æžã, ãªããŠããã¯ãç¡ãã®ã«âŠ.
(6.8) statement:
labeled-statement
compound-statement
expression-statement
selection-statement
iteration-statement
jump-statement
ãããèŠãŠãïŒstatic ãèŠã€ãã£ããã©ããšããæå³ã¯å¿
ããã
ããããŸããã(ç°éšãããèšãããã£ãããšã¯æ³åã§ããªãã¯ãªã
ã§ããïŒãã®èšäºã¯ããã«è©²åœããªãã§ããã)ïŒããã¯ããŠãã...
èªåã®ãšããã§èŠãŠã¿ããšïŒ
1. ä»ç€Ÿãæžããã³ãŒãã§ïŒstatic ãªé¢æ°ãããããŒãã¡ã€ã«
å
ã§*å®çŸ©*ãããŠãããã®ã1ã€ã ããããŸããïŒ
æ¬åœã®æå³ã¯ããããŸããã
- encrypt/decrypt ã«ä¿ããã³ãŒãã§
- è€æ°ã®ç®æã§åãã¢ã«ãŽãªãºã ã䜿ãããšãä¿èšŒããã
- ãããïŒãªã³ã¯å¯èœãªåœ¢åŒã§å€éšã«åºãã®ã§ïŒãã®é¢æ°ã
çŽæ¥åŒã°ããããªã
ãšãã£ãçç±ãæ³åã§ããŸãïŒ
ãªãã§ãã¯ãã«ããªãã£ãã®ããšèãããŠãïŒç§ã«ã¯çããã
ãŸããïŒ
2. çæãããããããŒãã¡ã€ã«ã« static ãªé¢æ°ã®*宣èš*ãå«
ãŸãããã®ã倿°ïŒ
ãã®ãã¡ã®äžéšã¯ïŒç§ã倿Žãã ASN.1 ã³ã³ãã€ã©ã®ã¢ãŠãã
ããã§ïŒé¢æ°ã䜿ããã(åŒã°ãã)åã«å¿
ã宣èšãããŠããããš
ãä¿èšŒãããããïŒ.c ãã¡ã€ã«ã®å
é ã§ include ããã .h
ã«åºåããããšã«ãããšæããŸãïŒå
㯠C++ ã®ãœãŒã¹ãåºåã
ããã®ã ã£ãã®ã§ïŒãã®åœ±é¿ãåŒãæºã£ãŠããé¢ããããããã
ãŸããïŒ
ä»ã®ãžã§ãã¬ãŒã¿ãŒã®ã¢ãŠããããã®å ŽåãïŒå®£èšãå
é ã«ãŸãš
ããç°¡åãªæ¹æ³ã ãããšããçç±ãæ³åã§ããŸãïŒ
2'. å°ããªã€ã¡ãŒãžããŒã¿(ãããããã)ãªã©
ããã¯ïŒã©ãã§ include ããããããããªãããïŒãšãã£ã¿ãŒã®
åºåã ããç»äžçã«ãªã£ãŠããïŒãšãã£ãçç±ã§ãããïŒ
3. 倿°ã宣èšãããã¯ãã®äžéš
#define DECLARE_PAGE_KEY(KEY_STR) static unsigned long key_##KEY_STR
4. C++ ã®ããŒãµãŒéšåã§ã¯ïŒå€æ°åïŒé¢æ°åã®äžéšã« static
ãšããæååãå
¥ã£ãŠãããïŒã³ã¡ã³ãã®äžã«ãã£ãã...
/*
...
local variables, allocated at function scope. Example:
void f()
{
int i = 0;
static int j = i; // case 1
Y y(X()); // case 2
...
Here j's initializer involves the local variable i, and y's initializer
...
*/
----
Hisao Aoyama éå±± å°å€«
ASTEC Products, Inc. ïŒæ ªïŒã¢ã¹ããã¯ã»ãããã¯ã
aoy...@astec.co.jp
<abrbdo$4au$1...@cobalt01.janis.or.jp>ã®èšäºã«ãããŠ
vy...@janis.or.jpããã¯æžããŸããã
> struct foo {
> int * TableHeight;
> int * TableWidth;
> <snip>
> };
>
> ã¿ãããªæãã§ã沢山fieldã䞊ãã§ããæ§é äœãèšå®ãããããªé¢æ°ã§ã
> åã
ã®fieldã®å·®ãå Žæãmallocãšãã§ã¡ã¢ãªç¢ºä¿ããããªããŠå Žåã
> ãããŸããã?ã§ã颿°ã®æåã§ãããã®fieldããäžæŠNULLã§åæåããŠ
> ãããŠãéäžã§ã¡ã¢ãªç¢ºä¿ã«å€±æããããgoto ã§
>
> error:
> free(TableHeight);
> free(TableWidth);
> <snip>
> return NOT_SUCCESS;
>
> ã¿ãããªå Žæã«é£ã°ããšãã£ãŠãç§ã¯ãããã£ãŠããããªæ°ããããã§ã
> ãæåã®çºæ³æç¹ã§ goto ã¯ãããã«æãèœã¡ããã£ãŠããšã¯ãªããããª
> æ°ãããŸãã
ç§ã ã£ãããŸãããããªãã§ãããããŸã倧æµããã®æ§é äœã®èšå®é¢æ°
ã«å¯Ÿå¿ããŠè§£æŸãã颿°ãäœããšæãã®ã§ãã¡ã¢ãªç¢ºä¿ã®å€±æã§äŸå€åŠ
çã«çªå
¥ãããããŸã§ç¢ºä¿ããã¡ã¢ãªãéæŸãããªãããã®æ§é äœè§£æŸ
çšã®é¢æ°ãåŒãã§ããŸããšæããŸãã
ãgoto ã¯æãèœã¡ãŠããããšãããããgoto ã®ååšãå¿ããŠãããã
è¿ããïŒã ããèšè𿮵éãã goto ã䜿ããšãã¯ãããªãæèçã«ãã
ããæ¹åã«åãã£ãŠããªããšãéã«äœ¿ããªããå¹çåã®æãŠã« goto ã«
è¡ãçãå Žåã¯å¥ã§ããããã®å Žåã¯éåžžã®ã¢ããªã®å Žåã¯æè¿ã¯ãŸã
ãªãã§ããã
# goto ãæåããèããã®ã¯ãã仿¥ã¯ goto 䜿ããããšããOS ã®
# kernel (or stdlibé¡)ãããããããšããããšãã ãããã(^^;
> Cã ãšçµæ§ãããã¡ãªç¶æ³ã®ãããªæ°ããããã§ãããç§ã®æèŠããããã
> ã®ããªã(æè¿ã¯ã»ãšãã©C++ãªãã§throwããŠçµããâŠ)
ãããæããç§ãå€ãªãã ãšæãæ°ãããªãã§ããªãã§ããã§ããgoto
ã¯å¿ããŠããã£ãŠãããã§ãã
> ãã€ã¯ã§ããã
> åãç¥ããªããã§ããã
> ã ããããã¹ã9段ã10段ãŸã§æé·ããŠããŸãéçšã«
> èå³ãããã®ã§ããã
<abslik$23m4$2...@news2.rim.or.jp> ã«æžããæ§é ã§ãã, ããã¯ã¢ãã ã«ãã
åçŽãªéä¿¡ã®ã¿ã¹ã¯ã§, ããã以äžã®ãããªåŠçã«ãªããŸã.
{ // function entry
for (ç¡éã«ãŒã)
{
// ããã§ã¿ã¹ã¯èµ·åã¡ãã»ãŒãžãåãåã
{
// ã¢ãã ã®ã»ããã©ååŸ
switch (èµ·åçš®å¥)
{
// çš®å¥ã«ã¯ã¢ãã ã®é»æº on/off ãš RI ã«ããèµ·åããããŸã.
// 以äžã¯ RI ã®åŠç
case ...:
while (! (RI 確å®ã¿ã€ã ã¢ãŠã))
{
if (RI èªè)
{
if (RING ã® accept ("ata") ãããŸããã£ã)
{
while (黿åä¿¡)
{
if (è¿äºãèŠãããã®ã ã£ã)
{
for (ãªãã©ã€)
{
// éä¿¡
while (ãã£ãªã¢ããã)
{
if (éä¿¡ãããã¡ã空)
break;
}
if (ãã£ãªã¢ããªã)
break;
if (éä¿¡ã®è¿äºãåãåã£ã)
break;
}
}
}
}
// ã¢ãã åæ
break;
}
}
break;
}
// ã¢ãã ã®ã»ããã©è§£æŸ
}
}
}
# éä¿¡ã®ä»æ§ã¯ç§ãå®ããèš³ã§ã¯ãããŸãããã®ã§å¿µã®çº.
ãŸã確ãã«ããã€ãã®éšåã§æ¡ä»¶ãåŒã£ããè¿ãã°æµ
ãã¯ãªãã§ããããã©,
ãµãã«ãŒãã³ãäœã£ãŠãŸã§æµ
ãããå¿
èŠããªããšæããŸã (ããã§ 50 è¡çšåºŠ
ã ã, å
šäœã§ 150 è¡çšåºŠã£ãŠã®ã¯æ¢ã«ãŸãšãŸã£ãŠãæ¹ã ãšæãã).
<absvs1$28jn$1...@news2.rim.or.jp>ã®èšäºã«ãããŠ
doh...@hf.rim.or.jpããã¯æžããŸããã
> <abslik$23m4$2...@news2.rim.or.jp> ã«æžããæ§é ã§ãã, ããã¯ã¢ãã ã«ãã
> åçŽãªéä¿¡ã®ã¿ã¹ã¯ã§, ããã以äžã®ãããªåŠçã«ãªããŸã.
:
> ãŸã確ãã«ããã€ãã®éšåã§æ¡ä»¶ãåŒã£ããè¿ãã°æµ
ãã¯ãªãã§ããããã©,
> ãµãã«ãŒãã³ãäœã£ãŠãŸã§æµ
ãããå¿
èŠããªããšæããŸã (ããã§ 50 è¡çšåºŠ
> ã ã, å
šäœã§ 150 è¡çšåºŠã£ãŠã®ã¯æ¢ã«ãŸãšãŸã£ãŠãæ¹ã ãšæãã).
MS-Windows ã®ã¢ããªã® GUI ã®ãã³ããªã³ã°ãããæ§ãªéšåã ãšããã
ã«è¿ããã€ãåºæ¥ãŠããããšãããã§ããäŸãã°ãããã€ãã®è€åæ¡ä»¶
ã«ãããåºãã¡ãã¥ãŒããããã®é
ç®ãããå
¥ãæãããäœã ãããæ§
ãªãã€ã®å Žåã¯ãããã«äŒŒãæãã«ãªãã§ã(åæ§ã«ãµãã«ãŒãã³ãäœã£
ãŠãŸã§æµ
ãããå¿
èŠãç¡ããããªå Žå)ã
ã§ãããã§å°ãã®ã¯ã仿§ã®å€æŽã远å ãé »ç¹ã§ãè€åæ¡ä»¶ãè€éæªå¥
ã«ãªã£ã¡ãã£ããšãã§ããŠãããã«ã€ãåœç¶ãã®å¶åŸ¡æ§é ãè€éæªå¥ã§
ã°ããã¹ã¯ãªä»£ç©ã«ãªã£ã¡ãŸãäºã§ãã§ããŸãããã¯å€§æµæ¢ã«ã©ãæžã
çŽããŠãçè§£ãé£ãç¶æ³ã ãããããã§å³æªãšæ±ºãã€ãããããããã
ã§ããŠã
# ããããçè§£ãæã¿ãããªããããªã°ããªè€åæ¡ä»¶ãæŒãã€ãã奎ãš
# ããããç¶æ³ãšããããã€ã«ã³ãšèšããŸããã(^^;;;
è¡æ°åè² ã§ããã»ã»
ç§ã ã£ããåŠçã®æµãçã«ããå°ãäœãšãèŠããããªããªãããªããšãæãããªã
ãããããã«breakãã¯ãã£ãŠãã
ïŒè¡æ°ããã¯èŠæãéèŠã®æèŠ
<abt1td$j2f$1...@news.kyosai.or.jp>ã®èšäºã«ãããŠ
sugi...@kyosai.or.jpããã¯æžããŸããã
> ç§ã ã£ããåŠçã®æµãçã«ããå°ãäœãšãèŠããããªããªãããªããšãæãããªã
> ãããããã«breakãã¯ãã£ãŠãã
確ãã«ãããã€ãã® break ã¯è¡ãå
èŠå®ããã®ãé¢åãšããã°é¢åã§ã
ãããããã goto ã®åºçªïŒ(^^;
# ã³ã¡ã³ãä»ããŠãããããã§ç§ã¯èš±ãã¡ãããããããªãããã©ã
<abqe42$g8f$2...@ns.src.ricoh.co.jp>ã®èšäºã«ãããŠã
oh...@src.ricoh.co.jpããã¯æžããŸããã
> > ä»åã®ã¹ã¬ããã®ã ãã¹ãïŒæ®µã®ããã°ã©ã ãã§ããã
> > (1) goto æãçµ¶å¯ŸçŠæ¢ãšããŠããæãããäºã¯
> > 倪ç°ãããªãæ³åã§ããã§ãããã
> > ïŒæ¬§å·ã®èªåè»ç£æ¥çã®ïŒ£èšèªããã°ã©ã ã«ãŒã«ã§ããã
> > ãã»ã©ã«ãŒã«ïŒã ã£ãããªïŒã§ããgoto ã«ã¯åŠå®çã§ãã
>
> ããã»ã©ã«ãŒã«ããšããã®ã¯ç¥ããŸããããæ€çŽ¢ããŠã
> èŠã€ãããŸããã§ããããŸããgotoçµ¶å¯ŸçŠæ¢ãã®çŸå Žã
> ååšããã ãããšããããšã¯æ³åã§ããŸãã
ãããã»ã©ã«ãŒã«ãã£ãŠã®ã¯ããã¶ã MISRA ã® C ã§ã®ããã°ã©ãã³ã°
ã¬ã€ãã©ã€ã³ MISRA C ã®ããšã ãšæããŸããMISRA ã£ãŠã®ã¯
The Motor Industry Software Reliability Association ã§
ããŒã ããŒãžã¯ http://www.misra.org.uk/ ã§ãã
ããªãããã®ã«ãŒã«ã«çžãããã®ãšãããã°ã©ã ãçŸãããªãã®ã¯
å¥ã§ããããã»ã»ã»ãããããçŸå Žã®ã«ãŒã«ãªããŠã¡ãªããã®æ¹ã
倧ããããæ¡çšãããŠããã ããããããããšèªåè»é¢ä¿ã¯ã»ãšãã©
goto ã®å¿
èŠæ§ããªãã®ãããããªãã§ããã
--
éæšãå奜
> > ç§ã ã£ããåŠçã®æµãçã«ããå°ãäœãšãèŠããããªããªãããªããšãæãããªã
> > ãããããã«breakãã¯ãã£ãŠãã
>
> 確ãã«ãããã€ãã® break ã¯è¡ãå
èŠå®ããã®ãé¢åãšããã°é¢åã§ã
> ãã
$GCC/gcc/tradcpp.c ã® rescan() ãšãã«æ¯ã¹ãã°æ°çŸåãããæããšæãã
ã§ããâŠ.
> ãããã goto ã®åºçªïŒ(^^;
ãã£ã¡ã«ã¯ goto ã倿°ç»å ŽããŠãŸã.
# ç§ã®æ¹ã«ãäžã¢ãžã¥ãŒã«ã« 10 åãããç»å Žããã®ããã£ã. ããã¯å
šéšãš
# ã©ãŒåŠç.
"Sugihara Yoshimi" <sugi...@kyosai.or.jp> wrote in message
news:absjt1$hrd$1...@news.kyosai.or.jp...
> ææ¡ãã¹ããŒã¬ã³ãæ¬è³ªçãªçè§£ãªãã«æãæ£ããããšã¯ãªãã®ã§ã¯ïŒ
> éã«ææ¡ãã¹ããŒã¬ã³ãæžããéå»ã®å倧ãªäººã«å
±æãããããã
> éèŠã ãšæããŠæãæ£ãããšæããã§ããã©ïŒ
>
äžè¬è«çã«ããææ¡ãã¹ããŒã¬ã³ãæžããéå»ã®å倧ãªäººããå°æ¬ããããŸãã
ç²ç®çã«ãå倧ãªäººãã«åŸããæ¬è³ªçãªçè§£ãªãã§æãæ£ããäºã¯ãããšæããŸãã
ç¥ç°ããã®ãã£ããã£ãŠãã®ã¯ãããªäŸãªã®ã§ã¯ïŒ
--
e-mail: a...@stg.co.jp
ããããããã¹ã9段ã10段ã¯ãã¡ããšããããšã誰ãæããŠããªã
ãšããæããããŠããŠããã§ãé¢åã ãããŸããããããšãªã£ãŠã
ãšããããããã€ãŸããªãçç±ãããªãããšç§ã¯æã£ãŠããã®ã§ããã
ãããã¯ããã¹ã9段ã10段ã¯ãã£ããããã ã£ããããŠïŒç¬ïŒã
ã©ãªããã玹ä»ããŠããè€åããã®æžç±ã§ã¯ãããäŒç€Ÿã§ã¯
äžåžãå
茩ããã¹ããäœæ®µã«ããªã£ãŠããã®ãæ°äººãç䌌ããŠããŸã
ãšããäºäŸãæžãããŠããŸãããã
--
D.Miyasaka <mailto:miya...@anet.ne.jp>
çããã®è°è«ã¯å°ãããéããŠãããããªæ°ãããã®ã§ããã
ã説æããªãããããèªåã®åšãã§ã¯èŠãããªããçãšããã®ã¯ãçãåŸãŠãã
ãšã¯æããŸããã
ïŒå€±ç€Œãçã¿ãªãã§èšãã°ãæžããŠãªãããšãèªãã®ã倧äºãªèœåã§ããïŒ
ç°éšããã®æšå¥šè£œåããã®é¢é£äŒç€Ÿã販売ããããšèªäœãç°éšããã䞻匵
ãããããªãäœãã¬ãã«ã®ããã°ã©ãããæ¥æ¬ã§åé¡ã«ãªã£ãŠããããšã®èšŒæã«
ãªã£ãŠãããšæããŸãã
ïŒïŒ®ïŒ¥ïŒ£ã¯ãäŒæ¥ãå
Œ
±æ©é¢ã®åºå¹¹æ¥åã§å€§ããªã·ã§ã¢ãæã£ãŠããŸãã
ãèªç€Ÿç³»åã®ãããžã§ã¯ãã«å£²ã蟌ãã®ã§ããããïŒ
ããããªãããç°éšããã®è«ç¹ã¯ããã®ã°ã«ãŒãã®æ¬æšãšã¯äžèŽããªããšæã
ãŸãã®ã§ãç°éšããã¯å¥ã®é©åœãªã°ã«ãŒããžæçš¿ãã¹ãã ãšæããŸãã
ïŒã倱ãããïŒïŒå¹Žãã¯ã容æã«ã倱ãããïŒïŒå¹Žãã«ãªã£ãŠããŸããŸãã
ç°éšããã®è«ç¹ã¯æåããäžè²«ããŠãå売ããã¿ããå±
æ©æã®ããããã ãšæããŸãããªã®ã§ãããã«ããããª
ãããã«çããæ°ãã€ããŠè°è«ãããŠããã®ã§ã¯ãªãã
ãšæãã®ã§ããããããã§ãããã
# ãæ¥æ¬ã®ããšããéå®ã¯ãã£ãããª?
> ã説æããªãããããèªåã®åšãã§ã¯èŠãããªããçãšããã®ã¯ãçãåŸãŠãã
> ãšã¯æããŸããã
ã説æããªãããšããã®ã¯ãå®äœã®ãªããšããã«çŒãæ¥
ããšéšãã§ããŸãå¯èœæ§ãæé€ããããã§ãã説æãã
ãã°ç°éšããã®çºèšã®èª¬åŸåãé«ãŸãããã§ãããè°è«
ã«åå ããŠããå
šå¡ã«ãšã£ãŠã¡ãªããããããŸãã
ãèªåã®åšãã§ã¯èŠãããªããããç°éšããã®æ³å®ãã
ãŠããã¹ãã«ã¬ãã«ãäœãããã®ã§ã¯ãªãããšããææ
ã®äžéšã§ããããã劥åœã§ã¯ãªãã®ãªããç°éšããã®ã»
ããå
·äœäŸãæããã°ããã®ã§ãã
# èå©å¿ãªãããçã¯ãå°ãããã®ã§ããã
> ç°éšããã®æšå¥šè£œåããã®é¢é£äŒç€Ÿã販売ããããšèªäœãç°éšããã䞻匵
> ãããããªãäœãã¬ãã«ã®ããã°ã©ãããæ¥æ¬ã§åé¡ã«ãªã£ãŠããããšã®èšŒæã«
> ãªã£ãŠãããšæããŸãã
ãã¡ããããã®æ¥çã®äžã«ã¯ããããã¬ãã«ã®äœãéçº
çŸå Žãããã§ããããããããããã®ãããã°ããªãã®
åé¡ã«ãªãã§ããããã ãããããã補åãåºãŠããŠã
äžæè°ã¯ãªããããŸã£ãã売ããªããšã¯ç§ãæããŸããã
åé¡ã¯ãããã©ãã ãæ®éçãªã®ããã§ãã
# ãæ¥æ¬ã§ããšããéå®ã¯ãã£ãããª?
> ïŒïŒ®ïŒ¥ïŒ£ã¯ãäŒæ¥ãå
Œ
±æ©é¢ã®åºå¹¹æ¥åã§å€§ããªã·ã§ã¢ãæã£ãŠããŸãã
> ãèªç€Ÿç³»åã®ãããžã§ã¯ãã«å£²ã蟌ãã®ã§ããããïŒ
ãªãã»ã©ã
>
> ç°éšããã®è«ç¹ã¯æåããäžè²«ããŠãå売ããã¿ããå±
> æ©æã®ããããã ãšæããŸãããªã®ã§ãããã«ããããª
> ãããã«çããæ°ãã€ããŠè°è«ãããŠããã®ã§ã¯ãªãã
> ãšæãã®ã§ããããããã§ãããã
ç°éšããã®è«ç¹ãé¢ããèªç±ã«è°è«ãããŠããæ¹ã¯ç¢ºãã«
ããããããã£ããããŸãã
> # ãæ¥æ¬ã®ããšããéå®ã¯ãã£ãããª?
ç°éšããããœããã売ã蟌ãã®ã¯æ¥æ¬ãªã®ã§ã
ç°éšããã¯æ¥æ¬ãæ³å®ããŠããŸãã
> ã説æããªãããšããã®ã¯ãå®äœã®ãªããšããã«çŒãæ¥
> ããšéšãã§ããŸãå¯èœæ§ãæé€ããããã§ãã説æãã
> ãã°ç°éšããã®çºèšã®èª¬åŸåãé«ãŸãããã§ãããè°è«
> ã«åå ããŠããå
šå¡ã«ãšã£ãŠã¡ãªããããããŸãã
>
> ãèªåã®åšãã§ã¯èŠãããªããããç°éšããã®æ³å®ãã
> ãŠããã¹ãã«ã¬ãã«ãäœãããã®ã§ã¯ãªãããšããææ
> ã®äžéšã§ããããã劥åœã§ã¯ãªãã®ãªããç°éšããã®ã»
> ããå
·äœäŸãæããã°ããã®ã§ãã
確ãã«ããã§ã¯ãããŸãã
>> ç°éšããã®æšå¥šè£œåããã®é¢é£äŒç€Ÿã販売ããããšèªäœãç°éšããã䞻匵
>> ãããããªãäœãã¬ãã«ã®ããã°ã©ãããæ¥æ¬ã§åé¡ã«ãªã£ãŠããããšã®èšŒæã«
>> ãªã£ãŠãããšæããŸãã
> ãã¡ããããã®æ¥çã®äžã«ã¯ããããã¬ãã«ã®äœãéçº
> çŸå Žãããã§ããããããããããã®ãããã°ããªãã®
> åé¡ã«ãªãã§ããããã ãããããã補åãåºãŠããŠã
> äžæè°ã¯ãªããããŸã£ãã売ããªããšã¯ç§ãæããŸããã
> åé¡ã¯ãããã©ãã ãæ®éçãªã®ããã§ãã
ãœãããŠã§ã¢ãä»ã¯å°ããã€æµ·å€ãžå€æ³šããå§ããŸããã
äººä»¶è²»ã®æ Œå·®ã ãã®çç±ãªãã°è¯ãã®ã§ãããããã ã
ã§ã¯ãªãã§ãããã
æåããã¹ãã«ã¬ãã«ã®é«ã人ã¯ããŸããããæèã®ãªã
人ã¯ãã©ãã ãçµéšããŠãã¹ãã«ã¯äžãããŸããã
æ¥æ¬ã§ãã®ãããªè£œåãã§ãããšããããšã¯ãæ¥æ¬ã®ç¶æ³ã
端çã«ç€ºããŠãããšæããŸãã
ãããã¯ããããšããŠã屿©æã¯ãã£ãã»ããè¯ãã®ã§ã¯
ãªãã§ããããã
ïŒãïŒä»æ¥çš®ã§ããããããããŸãããïŒ
ããèšèªä»¥åã®æè²ãå¿
èŠã«ãªã£ãŠããã®ã§ã¯ãªãã
ãããšæããŸãã
On 14 May 2002 05:20:48 GMT, in <abq6rg$enn$1...@ns.src.ricoh.co.jp>,
oh...@src.ricoh.co.jp (Junn Ohta) wrote:
>ããããèããããã§ãããããã§ãã誀èªãšããããž
>ããŠããªè§£éãã£ãŠã©ãããããããŸã? ç§ã¯ããŸãæ
>ãã€ããªããªã
ãããç®ã®åã«ãã人ãã¡ã«èª¬åŸãããªããŸã ç°¡åã§ããã©ãäžåºŠãã
ããèŠçŽ(ãã©ã)ãäœã£ã¡ãããšã瀟å
ã®äººãã¡ã§ãªããããããå
¥ç€Ÿ
ãã人ãã¡å
šå¡ãã®ææžãç®ã«ããèš³ã§ããããç§ãããžããŠããªè§£éã
ã£ãŠæãã€ããªããã©ããã£ã¡ãæ³åãçµ¶ããããšããããæã«ãã©ã
ããããªãšãããèããŠãããã§ãããŸãæ°å
¥ç€Ÿå¡ã ã£ãã2chã§æŽ»èº
ããŠãã人ã¿ãããªã®ãæ¥ãããšãããã ãããªãšã
# å®éã«ã¯æå°è è£éã¿ãããªåœ¢ã§åŠçãããã§ããããã
>ã³ãŒãã£ã³ã°èŠçŽã«ããããããgotoã¯çŠæ¢ããšæžããŠ
>ããã°ãããšæãã®ã ãã©ãã ãããª? :-)
ããããã§ã銬鹿ããäºãèãã€ã人éãããããšããåæã«ç«ã€ãš
ããã£ã¡ã®æ³å®ãã以å€ã®gotoã¯çŠæ¢ãã£ãŠèšã£ãŠãã誰ããæ³å®
ããªãã£ãgotoå©çšã®çºæãããã£ã¡ããæ°å
¥ç€Ÿå¡/æ®éã®ç€Ÿå¡ããã
ãšããã®ã«äžç¥šã^_^;
ã§ãæ®éäœãã®ææ®µãªãææ³ãªããæ¶ããæã¯ãã䜿ãããšãæ¶ããã
ã䜿ããªãããšãæ¶ããããé©åãªæã«äœ¿ãããšãæ¶ãããã¿ãããª
段éãããããããªãããšæããã§ãããgotoãªããã®åè¬ã®å Žåã¯ã
èªç±å¥æŸã«äœ¿ã£ãæã®å¯äœçšããããããŠãã䜿ããªãããšãæ¶ããã
æ¹ãå
ãªããããªãããããçšåºŠçµéšãç©ãŸãªããæ±ããªãæ¯ã ãšæ
ããã§ãã(æ¯ãäœ¿ãæ§ã§äŸ¿å©ãªããšããããã©ãçµéšã®ãªã人ã
æãã£ãã䜿ã£ããå±éºã)
ã§ãéã«æ®éã®æ¹æ³ã ãšãšã¬ã¬ã³ãã«è¡šçŸåºæ¥ãªããŠå°ã£ã¡ãã£ããšã
çžè«ãããæã¿ããã«ãæ¬åœã«gotoã®äœ¿ãæ¹ãæããçµ¶å¥œã®æ©äŒãªããŠã®ã¯
ãããã§ã¯ãªãããšãæããŸããã§ãããã°ã©ãã³ã°ãªããŠåãªãä»äºã
ãšã¬ã¬ã³ããªãããé¢ä¿ãªãããããšãã人ã«ã¯goto䜿ã£ãŠã»ãããªã
ãªãâŠãªããŠã®ã¯ãã¡?^_^;
話ãå
ã«æ»ããšããã«ã¯äœãèãã€ããåãããªããç«å Žã«ç«ãŠã°ã
ããã€ãããããããã¯ãããªgotoãããªãããšãæåŒãã ãã°æ³¥æ²Œã«
ãªãèš³ã§ãããããã®ã¯CodeingèŠçŽãäœãç«å Žããé¿ããããã§ãã
ãã£ãšã幞ãç§ã®äŒç€Ÿã§ã¯ãããªããšã¯ãããŸããã§ãããã©ã
# ç§ã®äœã£ãCodeingèŠçŽã«åŸã人ãã»ãšãã©ããªãã£ããã
# ãã«ã¯å€ãã®ã«æåŒãã人ãããªããšãã説ãããã(倧èŠç¬)
---------
å±±æ éå¿ ãdebugã¯ïŒæ©åŸéãïŒæ©åé²ããã€ãŸã§ãã£ãŠãçµããªãã
e-mail : vy...@janis.or.jp
WWW page : http://www.janis.or.jp/users/vyama/
ãªã«ããšã¬ã¬ã³ããªã®ãã¯äººã«ãã£ãŠããŸããŸã§ããã
goto䜿ãã°ãšã¬ã¬ã³ãã«ãªãã£ãŠã®ãã©ãããšæããŸãã
ç§çã«ã¯gotoãæžããŠããããã°ã©ã ã£ãŠå€§æµåŠçã
远ã£ããã«ããæ°ãããããªã
ïŒèãæ¹ãè¶£å³ã®åé¡ã§ããããã©ã
> goto䜿ãã°ãšã¬ã¬ã³ãã«ãªãã£ãŠã®ãã©ãããšæããŸãã
> ç§çã«ã¯gotoãæžããŠããããã°ã©ã ã£ãŠå€§æµåŠçã
> 远ã£ããã«ããæ°ãããããªã
ãã®æã®è©±é¡ã§çã£å ã«æãä»ãäŸ.
# ãããã·ããæ°ã 1 ã®ã¿ã§å æžç®åæ°ãæ¥µåæžãããªã©, å€åé·æŒç®åã
# ã«ã«ã¹ã¿ãã€ãºããŠãããŸã. 倧æåã®å€æ°ãå€åé·æ°ã§ã.
/* assume that 0 <= X < 0x40000000 */
int
isqrt (int X)
{
unsigned y1 = 0x40000000, y2 = 0x80000000;
unsigned yr = 0x8000;
int XX = 0, RET = 0;
for (;;)
{
plus_loop:
XX |= y1;
if ((X -= XX) < 0)
goto minus_loop;
RET |= yr;
yr >>= 1;
if (!yr)
return RET;
XX |= y2;
XX &= ~y1;
X <<= 1;
y1 >>= 1;
y2 >>= 1;
}
for (;;)
{
int y3;
minus_loop:
yr >>= 1;
if (!yr)
return RET;
y3 = y1;
X <<= 1;
y1 >>= 1;
XX |= y1;
y2 >>= 1;
if (0 <= (X += XX))
{
XX &= ~y3;
XX |= y2;
RET |= yr;
goto plus_loop;
}
XX &= ~y3;
åæã
ã»ã»ã»ãšæã£ãããè¿äºããªã
ããããè¿äºãããã§ããããª
# 圌ã®åãçãã®ã¹ã¿ã€ã«ã®çž®å³ã§ããª
> ãæ¡ä»¶ä»ã goto æã§ããããïŒ switch
ãã®ãgotoãã¯ãã¢ãžã¥ãŒã«æ§é ã®äœãäžæçã«ããã®ã§ããïŒ
> >ïŒãã®ãã¡ãif ããããšããããããã ãª
>
> ããããªããšèšããŸããã®ã§ãå®å¿äžããã
ã»ãããããã¯ããã
ããã ãã§ã¯ãªããã®ããª? ããã¯ããããããŸããã
> æåããã¹ãã«ã¬ãã«ã®é«ã人ã¯ããŸããããæèã®ãªã
> 人ã¯ãã©ãã ãçµéšããŠãã¹ãã«ã¯äžãããŸããã
ãã¹ãã«ãäžãããªã人ãã®ããã«ãããã補åãçšæ
ãããããšããã®ã¯ç§ã«ã¯åŸãåãã®è§£æ±ºæ¹æ³ã§ããã
ãã«æããŸããç§ãªãæèåäžãå¯èœã«ãããããªæè²
ãããŒã«ã®æŽåãç®æããããšããã§ããããã¡ããã
ããç°¡åãªããšã§ãªãããšã¯ããã£ãŠãŸãã...ã
> æ¥æ¬ã§ãã®ãããªè£œåãã§ãããšããããšã¯ãæ¥æ¬ã®ç¶æ³ã
> 端çã«ç€ºããŠãããšæããŸãã
> ãããã¯ããããšããŠã屿©æã¯ãã£ãã»ããè¯ãã®ã§ã¯
> ãªãã§ããããã
ããããªè£œåã圹ã«ç«ã€ããã§ã¯ãã¡ã ããšããæå³ã§
ã®å±æ©æã¯ãã£ãŠãŸãã:-)
# ã§ããããªã«ã²ã©ãããæ¥æ¬?
ãšããããšã¯ãã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ãå質ã«ã€ããŠäŒ
瀟åŽããã®ã³ã³ãããŒã«ãå¹ããªãã®ã§ãã?
æ°äººãšãããOJTæéã®ç€Ÿå¡ã«ã€ããŠã¯ãæžããã³ãŒã
ã誰ãããããšãŸããã«ãã§ãã¯ããã§ããã? ãã®ãš
ãã«ãããããã³ãŒãã¯æžããŠã¯ãã¡ããšæè²ããã®ã
ç§ãšããŠã¯æ¬çã®ãããªæ°ãããããã§ãã
ããžããªgotoã䜿ããªãããšããã®ã¯ãã³ãŒãã£ã³ã°èŠ
çŽã®ãããªããããããã®èŠåããããã£ãšãããå質
åºæºãšããŠçšæãã¹ãã ããšããæèŠããªã
> ãã®æã®è©±é¡ã§çã£å ã«æãä»ãäŸ.
ç§ã¯ã
struct list {
struct list *next;
int value;
};
struct list *p;
for (p = l; p != NULL; p = p->next) {
if (key == p->value) {
èŠã€ãã£ãæã®åŠç;
goto found;
}
}
èŠã€ãããªãã£ãæã®åŠç;
found:
ãªããŠã®ãè¯ãæžããŸããã©ããä»ã®äººã¯ãªã¹ããé
åã«é¢ããæ€çŽ¢ãå¿
ãç¬
ç«ãã颿°ã«ããã®ããª? ãããšããã©ã°ã䜿ã?
;;; çæ³¢å€§åŠ é»åã»æ
å ±å·¥åŠç³»(åŠè¡æ
å ±åŠçã»ã³ã¿ãŒ)
;;; åç°æŠåž (MAEDA Atusi) ma...@cc.tsukuba.ac.jp
ç§ã®å Žåãããã¯ä»¥äžã®ããã«ããŠããŸããŸãã
for (p = l; p != NULL && key != p->value; p = p->next)
;
if (p != NULL) {
èŠã€ãã£ãæã®åŠç;
} else {
èŠã€ãããªãã£ãæã®åŠç;
}
ããããæžãæ¹ã£ãŠããŸãäžè¬çãããªããã§ãããã?
ã¡ãªã¿ã«ãå€å®æ¡ä»¶ãè€éãªå Žåã§ãããããã¯ãã颿°ã§è¡šèšããã®ã
äžèªç¶ã ãšæããå Žåã¯ãgotoãäœ¿ãæ¹æ³ã§æžããŸãã
--
éŠ¬å Ž æå
ž (E-mail: b...@aqua.chem.nagoya-u.ac.jp)
åå€å±å€§åŠå€§åŠé¢çåŠç ç©¶ç§ç©è³ªçåŠå°æ»çè«ååŠç 究宀ïŒïŒïŒ
In article <ac7i5n$bo7$1...@news.cc.nagoya-u.ac.jp>,
b...@aqua.chem.nagoya-u.ac.jp (BABA Akinori) writes:
> ããããæžãæ¹ã£ãŠããŸãäžè¬çãããªããã§ãããã?
ããæžãã§ããããã©âŠ
for (p = l; p != NULL; p = p->next)
if (p->value == key)
break;
if (p != NULL) {
èŠã€ãã£ãæã®åŠç;
} else {
èŠã€ãããªãã£ãæã®åŠç;
}
èŠã¯ãã©ã£ã¡ããããæããã§ãããã
説æã®ããã«åçŽåããŠãããšã©ã¡ãããããæãã®ã§ããã®æ®µéã§ã¯
ã±ãŒã¹ãã€ã±ãŒã¹ãšããèšãããããªãã
ãã ãèŠã€ãããªãã£ãæã«åãå€å®ã2åããŠãã£ãŠã®ãæ°ã«ãªãã®ã¯ç¢ºã
ã§ããäŸã ãšåçŽæ¯èŒã§ãããªãã§ããã©ãå®éã«ã¯ãã®å€å®ãéããåŠçã«
ãªãå Žåã ã£ãŠãããŸãã
èŠã€ãããªã確çããããããã£ãŠãããã§ã®å¹çãäºã
ãããªãããããªã
ãªããäžè¬çãšããããæããšãããåé¡ã§ã¯ãªããªã£ãŠãããŸãã
# singly-linked list ã®çµäºå€å®ãéãããªãããšããããšã¯æã£ãŠãŸãããã©ãã
--
æ± ç°ç äº çš²åé§
ååšäœ
BOOL bSearch=TRUE;
p=l;
while(p != NULL && bSearch){
if(p->value == key){
bSearch=FALSE;
}else{
p=p->next;
}
}
if(!bSearch){
èŠã€ãã£ãæã®åŠç;
}else{
èŠã€ãããªãã£ãæã®åŠç;
}
> ãã ãèŠã€ãããªãã£ãæã«åãå€å®ã2åããŠãã£ãŠã®ãæ°ã«ãªãã®ã¯ç¢ºã
> ã§ããäŸã ãšåçŽæ¯èŒã§ãããªãã§ããã©ãå®éã«ã¯ãã®å€å®ãéããåŠçã«
> ãªãå Žåã ã£ãŠãããŸãã
ããã ãšå€å®ã¯1åã§ãã¿ãŸããã
unsigned y1 = 0x40000000;
unsigned y2 = 0x80000000;
unsigned yr = 0x8000;
int XX = 0;
int RET = 0;
while(yr > 0){
bLoop=TRUE;
while(yr > 0 && bLoop){
XX |= y1;
if ((X -= XX) < 0){
bLoop=FALSE;
}else{
RET |= yr;
yr >>= 1;
if (yr > 0){
XX |= y2;
XX &= ~y1;
X <<= 1;
y1 >>= 1;
y2 >>= 1;
}
}
}
bLoop=TRUE;
while(yr > 0 && bLoop){
int y3;
yr >>= 1;
if (yr > 0){
y3 = y1;
X <<= 1;
y1 >>= 1;
XX |= y1;
y2 >>= 1;
if (0 <= (X += XX)){
XX &= ~y3;
XX |= y2;
RET |= yr;
bLoop=FALSE;
}else{
XX &= ~y3;
}
}
}
}
return RET;
åçŽã«çµã¿ãªãããã ã
ãã£ãŠããšããããã©ã»ã»ã»ïŒæ±
ïŒããå°ãç
®è©°ããã°ãã£ãšãŸãšãŸããšæããã©
ç§ããµã€ãã¯ããããªã1åããè¡ããªãåŠçããã¹ã
ã®æ·±ããšããã«ãããšãããã«ãããšæãã®ã§ã
> èŠã¯ãã©ã£ã¡ããããæããã§ãããã
> 説æã®ããã«åçŽåããŠãããšã©ã¡ãããããæãã®ã§ããã®æ®µéã§ã¯
> ã±ãŒã¹ãã€ã±ãŒã¹ãšããèšãããããªãã
ããã§ããã
> èŠã€ãããªã確çããããããã£ãŠãããã§ã®å¹çãäºã
ãããªãããããªã
> ãªããäžè¬çãšããããæããšãããåé¡ã§ã¯ãªããªã£ãŠãããŸãã
å¹çãèæ
®ããªããã°ãªããªããªããã»ãã«ããããã
ãªæç®¡ã詊ã¿ã䟡å€ãããã§ããããã
ãªã¹ãããã
ãã¶ãé·ããŠçµäºå€å®ã®ã³ã¹ããæ°ã«ãªã
ãªãããªã¹ãã®æ«å°Ÿã«çªå
µãããŠãŠåå€å€å®ã ãã§ã«ãŒ
ããçµäºãããããšããããŸãã
å€ã®å€§å°æ¯èŒãå¯èœã§ããããåå€å€å®ã«ã³ã¹ãããã
ããªãããªã¹ãçææã«ãã¶ããªã³ã¹ãããããŠvalue
ããœãŒãããããªã¹ããäœã£ãŠãããããããŸãããã
ãããã°åå€å€å®åæ°ã®æåŸ
å€ãååã«ãªãããã§ãã
ãªã¹ãæ¢çޢ忰ãéåžžã«å€ãã®ãªããå Žåã«ãã£ãŠã¯ãª
ã¹ããé
åã«å€æããŠäºåæ¢çŽ¢ãå¯èœãªããã«äœãæã
ããããããŸããã
ãã§ã«gotoã®è©±ã§ã¯ãªãã§ããã(^^;
> ãã ãèŠã€ãããªãã£ãæã«åãå€å®ã2åããŠãã£ãŠã®ãæ°ã«ãªãã®ã¯ç¢ºã
> ã§ãã
Knuth ã® Structured Programming with goto statement ã«ã¯ãŸãã«ãããã
äŸããgoto ã䜿ãã¹ãã±ãŒã¹ããšããŠç»å ŽããŸãã.
# äœåŠãã§æã«å
¥ã£ããããã®ããª? 確ã以åä¹
éããããã®ã³ãŒãã«ã€ããŠ
# è§ŠããããŠãããããªâŠ.
goto ãç¡ããã®ã ããç®çãªã, åºçºç¹ã®ã³ãŒãã«ã¯ç»å ŽããŸãã.
for (;;)
{
XX |= y1;
if (XX <= X)
{
X -= XX;
RET |= yr;
}
yr >>= 1;
if (!yr)
return RET;
XX |= y2;
XX &= ~y1;
X <<= 1;
y1 >>= 1;
y2 >>= 1;
}
ããã ããªã®ã«äœæ
ãã®ãããªã³ãŒãã£ã³ã°ã«ãªã£ãŠããã®ããšãããš, æ¯èŒ
ãšæžç®ã¯ã»ãšãã©åãåŠçãªã®ã«åãããšãäºåºŠããã®ã¯å¿äœãªãããã§ã.
# å€åé·æ°ã ãšãã³ãã«ããã宿ã§ãã.
ã§, å®ã¯ãã®ã³ãŒãã£ã³ã°ã®ãŸãŸã§ã goto ãæé€åºæ¥ãŸã.
for (;;)
{
XX |= y1;
if (0 <= (X -= XX))
{
XX |= y2;
RET |= yr;
}
else
{
for (;;)
{
int y3 = y1;
X <<= 1;
y1 >>= 1;
yr >>= 1;
XX |= y1;
if (!yr)
return RET;
y2 >>= 1;
if (0 <= (X += XX))
{
XX &= ~y3;
XX |= y2;
RET |= yr;
break;
}
XX &= ~y3;
}
}
XX &= ~y1;
X <<= 1;
y1 >>= 1;
yr >>= 1;
if (!yr)
return RET;
y2 >>= 1;
> fj.comp.lang.cã®èšäº<868z6gwh...@poe.mob.or.jp>ã§
> noro...@mob.or.jpããã¯æžããŸããã
> > ããæžãã§ããããã©âŠ
> > for (p = l; p != NULL; p = p->next)
> > if (p->value == key)
> > break;
> > if (p != NULL) {
> > èŠã€ãã£ãæã®åŠç;
> > } else {
> > èŠã€ãããªãã£ãæã®åŠç;
> > }
>
> ç§ããµã€ãã¯ããããªã1åããè¡ããªãåŠçããã¹ã
> ã®æ·±ããšããã«ãããšãããã«ãããšæãã®ã§ã
ç§ã¯ïŒ
for (p = l; p != NULL && p->value != key; p = p->next)
;
(以äžç¥)
ã«ãŒãçµäºã®å€å®ã忣ããã®ãããïŒgoto ã§ãªããµã
ãããŠãã breakïŒcontinue ãå«ããšããçç±ã§ãïŒ
ããããæ¬é¡...
> ãªã¹ãæ¢çޢ忰ãéåžžã«å€ãã®ãªããå Žåã«ãã£ãŠã¯ãª
> ã¹ããé
åã«å€æããŠäºåæ¢çŽ¢ãå¯èœãªããã«äœãæã
> ããããããŸããã
èŠæš¡ãå°ãããªããã®ãããªéžæãããŸãïŒ
ãµãŒããããšããã€ã³ã¿ãŒã® dereference ãå°ãªãã®ã
è¯ããšæãããã§ã (宿ž¬ããŠãŸããã)ïŒ
# ãã¡ã§ã¯ãå¥ããããšèšã£ãŠããŸããïŒæ¬åœã¯
# dereference ãæ¥æ¬èªã§äœãšèšãã®ã§ããã£ã?
èŠæš¡ãããçšåºŠå€§ãããªã£ãŠïŒãªã¹ããã¡ã€ã³ããã³ã¹ããªã
ããµãŒãããå Žåã¯ïŒããŒã¿ã®ã³ããŒãæ°ã«ãªããŸãããïŒ
ãã€ããªããªãŒã䜿ããŸãïŒ
æãéãã®æ§èœãåºãªããšïŒäœããã®æ¹æ³ã§ãã©ã³ã¹ãããã
ã€ããªããªãŒã䜿ããŸã (ãæ°ã«å
¥ã㯠red and black)ïŒ
----
Hisao Aoyama éå±± å°å€«
ASTEC Products, Inc. ïŒæ ªïŒã¢ã¹ããã¯ã»ãããã¯ã
aoy...@astec.co.jp
aoy...@astec.co.jpãã:
> # ãã¡ã§ã¯ãå¥ããããšèšã£ãŠããŸããïŒæ¬åœã¯
> # dereference ãæ¥æ¬èªã§äœãšèšãã®ã§ããã£ã?
ç§ã¯ããã©ãããšãèšããŸããã©ãæ£åŒã«ã¯ããã¬ãã¡ã¬ã³ã¹ããªã
ã§ããããããè±åç
§ããªããŠããå
ãèšèããã£ããããªã
> èŠæš¡ãããçšåºŠå€§ãããªã£ãŠïŒãªã¹ããã¡ã€ã³ããã³ã¹ããªãããµãŒ
> ãããå Žåã¯ïŒããŒã¿ã®ã³ããŒãæ°ã«ãªããŸãããïŒãã€ããªããªãŒ
> ã䜿ããŸãïŒæãéãã®æ§èœãåºãªããšïŒäœããã®æ¹æ³ã§ãã©ã³ã¹ã
> ãããã€ããªããªãŒã䜿ããŸã (ãæ°ã«å
¥ã㯠red and black)ïŒ
ãã£ãããªã¹ããªãã ããskip listã§ã¯? ä¹ é
> > ãã ãèŠã€ãããªãã£ãæã«åãå€å®ã2åããŠãã£ãŠã®ãæ°ã«ãªãã®ã¯ç¢ºã
> > ã§ãã
>
> Knuth ã® Structured Programming with goto statement ã«ã¯ãŸãã«ãããã
> äŸããgoto ã䜿ãã¹ãã±ãŒã¹ããšããŠç»å ŽããŸãã.
èè¶³ã§ãã, ãã®å Žå㯠goto ã䜿ãããšããçªäººãç»å Žãããæ¹ã«åãå
¥ã£
ãŠããæ°ãããŸã (ãšãã£ãŠããªãŒããŸã§å€ããããã§ã¯ãããŸããã).
struct list *p;
struct list *tail, sentinel;
sentinel.value = key;
tail->next = &sentinel;
for (p = l; key != p->value; p = p->next)
;
if (p != &sentinel)
èŠã€ãã£ãåŠç;
else
èŠã€ãããªãã£ãåŠç;
tail->next = NULL;
oh...@src.ricoh.co.jpãã:
> ããã£ãã?
> http://www.fides.dti.ne.jp/~oka-t/cpplab-dereference.html
ãããŒããããªã«æ°ãã奎ãããªããŠâŠã§ãã©ãã§èŠããã¯æãåºã
ãŸããããããŸããã
ããããè±é
žçŽ å€ãšãŒãžã¬ã¹ããšã飿³ããŸãã ^_^; ä¹
é
> aoy...@astec.co.jpãã:
> > # ãã¡ã§ã¯ãå¥ããããšèšã£ãŠããŸããïŒæ¬åœã¯
> > # dereference ãæ¥æ¬èªã§äœãšèšãã®ã§ããã£ã?
>
> ç§ã¯ããã©ãããšãèšããŸããã©ãæ£åŒã«ã¯ããã¬ãã¡ã¬ã³ã¹ããªã
> ã§ããããããè±åç
§ããªããŠããå
ãèšèããã£ããããªã
å¥ãããæã èŠãŸãããæç§æžã§ãèŠãèŠããã(Adaã®åèš³èŠæ Œæžã ã£ããª?)
ãã€ã³ã¿ã ãšç§ã¯ãæç¹°ãããšèšãããšãå€ãããã
ããšã¯ã鿥ãšãããšããä»ã¯éããã®ããªã(ããsubmissionãããªããŠã)
ç§ã®æèŠã ãšãããªãšããããª?
ã¯ãã: ãã€ã³ã¿ãŒã®å
ã«ããå®äœãåãåºããåã
åºãããå€ã¯ãã€ã³ã¿ãŒã§ã¯ãªããè€æ°åã®
dereferenceãå¿
èŠãªå Žåããã¯ãããã§æž
ãŸããããšãããã
ãã©ã: çŸåšã®ãªããžã§ã¯ããããã€ã³ã¿ãŒã§æãã
ãåãã¿ã€ãã®ãªããžã§ã¯ããåŸããç§»åã
ãã®ã¯èŠç¹ã®ã»ãã
ããã: çŸåšã®ãªããžã§ã¯ããããã€ã³ã¿ãŒã§æãã
ãåãã¿ã€ãã®ãªããžã§ã¯ããåŸããç§»åã
ãã®ã¯ããŒã¿æ§é ã®ã»ãã
ã€ãŸãã鿥åç
§ãããŠããããŒã¿ãåãåºãã®ã¯ãã¯
ãããã§ããªã¹ãæäœã¯ããã©ããããããããã«ãªã
ããã§ããããã©ãããšãããããã®ã©ã¡ãã䜿ããã¯
ããŒã¿æ§é ã®ã€ã¡ãŒãžã«ãããŸããã§ãããã£ãæšæ§é
ãè¡ã£ããæ¥ããããã®ã¯ããã©ããã§ãçãããµãã
ã€ã¢ãåŒãæãããã«ããŠã»ããããŒã¿ãããããåŒã£
ã±ã£ãŠããã®ã¯ãããããã£ãŠãšãã§ãããã
dereferenceãã®ãã®ã¯ãåç
§ã¯ããããŸãã¯ããã€ã³
ã¿ãŒã¯ããããšæžãããã§ãã
> ããšã¯ã鿥ãšãããšããä»ã¯éããã®ããªã(ããsubmissionãããªããŠã)
ãé¢ç¯ãšããã ã£ããããŠã(ããã¬ã¹ã? :-)
é¢ä¿ãªããã©ããã®æã®åèªãèããŠãããšãã«ç§ã飿³ãã
ã®ã¯ãtangle ãšããããšã°ããªããšãªã䌌ãŠãŸããïŒ
--
ãµãªã€
tmp...@entscape.net
æ¥æ¬äººã¯ããã¯ã
欧米ãã€ã³ããäžåœã«å¯ŸããŠäž»åŒµã匱ãã
ïŒã䞻匵ã£ãŠã®ã¯èšãããäºãèšãã£ããŠäºã§ãã
åè«ããã人ã¯ã
ã©ãããæ°ããã¹ã¬ãããç«ãŠãŠäžããã
--
以äž
èŠãŠãåæäœ¿ã£ãŠ http://rec.ncos.co.jp
<sy...@pb.ctt.ne.jp> wrote in message news:3CE400C3...@pb.ctt.ne.jp...