{magclick}
{magclick}
/*
    KAB-studio.h
        @j`a|ŐTXVe
        i[ꂽwb_[t@Cłi΁jB

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    MF 2000/06/26(Mon) No.063
    zMF 3740i Mag2 + Pubzine j
    sF ܂܂( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/
{magclick}

/*              QOOONUQUij̍XV                  */
http://www.kab-studio.com/Info/News/

EXVȂB
@oCłB܂łB[łB


/*                        `[ʂȓL                        */
http://www.kab-studio.com/nikki2/

2000/06/18 (Sun)
@ǰƃ[~h邩H@̓[~h܂
ȂԂɁijB

2000/06/19 (Mon)
@NTTC^[lbgPIlʉ߁I@Ă܂܂͒ccB
ƃWIB̓L̓WIӎč\Ă̂łBԂB

2000/06/20 (Tue)
@R~jeBlbg[N֌WŖTΗj͒x̂B

2000/06/21 (Wed)
@А֌WQAI@ߑO̓\[XlNXgAߌ͍ۃVX
eBςł[ijB

2000/06/22 (Thu)
@KbRsĂNTTC^[lbg̖ʐځB͂Čʂ́HH@
ē̃JXB

2000/06/23 (Fri)
@ۃVXePIlʉ߁I@łϐ͒ccBă[~|B

2000/06/24 (Sat)
@׋ƂhƂFXBς炸ZXłijB



/*                         L̗JT                             */
http://www.kab-studio.com/Programing/KabuU/

2000/06/18 (Sun)
ՂƂ폑
const QƊ֌W
TOI͕KvƎv

2000/06/19 (Mon)
b}KWw
uvO~Őւb{{ҁv Effective C++ K{
Effective C++ ͂܂LȂ悤ȋC
gcc ŃRpC`FbN
VC ̃c[Ƃ gcc Ăяo
AEgvbgɌʂ\
ɕ֗

2000/06/20 (Tue)
ւ
VC gȂ
Effective C++ ̒mx

2000/06/21 (Wed)
x

2000/06/22 (Thu)
x

2000/06/23 (Fri)
x݁cc

2000/06/24 (Sat)
M_̃vO
t@Cf[^̏
EUC ŕۑ


/*             vO~OET̒ǉP                 */
http://www.kab-studio.com/Programing/Dictionary/
iUt܂ōXVx~܂A䗹j


{magclick}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
u܂Δɂ STL ͑邩ȁv
włāAzg͎gȂĂĂƂȂHx
uIIv
@łgȂ͍wǓo^B
http://www.kab-studio.com/Programing/STLiostream/
_______________________________________________________________[KCM]
{magclick}


/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

@Version 4.13
ƃ|C^

uO const ^ւ̃|C^Ă̂Ă݂܂v
w萔Ă̂g炻[[dg݂AƂĘbˁx
uBŁA͂Ɗ֌WƈႤbv
whA܂邱Ƃccx
u܂͂̊֐v

void LocalVariable()
{
    int i = 0;
    TRACE( "%X\n", &i );
}

// ̊֐ĂтĂB
void CallLocalVariable()
{
    LocalVariable();    // Ƀu[N|CgB
}

wH@̊֐āÅ֐Ăł邾ˁx
uBƂ肠Ă݂āv
w͂BƁA LocalVariable() ĂłƂɃu[N|Cg
ZbgāArhĎsA{^āA~܂x
u炻̊֐̒ɓāv
wyJbRɓ{^zŏ LocalVariable() ɃXebvCIx
uPsi߂āv
wyJbRz{^zPAQx
uR񉟂炢̂悤Ɂv
wAEgvbg i ̃AhX񂾂ˁBEBhEJ
ĂƁx

0064F4DC  00 00 00 00 34 F5 64 00 CD 30 40 00 8C F5 64 00 C0 01 52 00

wA i  0 炻ˁx
uPsi߂āv
w֐oāA CallLocalVariable() ɖ߂ccIx

0064F4DC  0D 38 40 00 34 F5 64 00 CD 30 40 00 8C F5 64 00 C0 01 52 00

w i ̒gAςĂII@ȂŁHx
úAJbR̒ōϐ́AJbR甲ƍ폜ꂿ
v
wJbRHx
uAꂾƓBiČƁA֐̒ōϐ́A
֐甲ƍ폜ꂿႤĂƁv
wAȂ́Hx
uBϐy[JϐzČāA[Jϐ͊֐
̒łȂ킯v
w֐Ǝ񂶂Ⴄ񂾁x
u܁[\Iɂ͂ĂȂ񂾂ǂˁB[JϐgĂ
́A̕ϐgv
wzƂ𑼂̐lgĊHx
uȊȁB𓥂܂āÁqԈrĂ݂܂傤v
wԈHx

int *RetBadPointer()
{
    int i = 0;
    TRACE( "%X\n", &i );   // Ƀu[N|CgB
    return &i;             // xo܂B
}

// ̊֐ĂтĂB
void CallRetBadPointer()
{
    int *pi = RetBadPointer();
    *pi = 100;
}

wrhxox

warning C4172: [Jϐ܂̓e|̃AhXԂ܂B

wA RetBadPointer() ̒Ń[Jϐ̃AhXԂ
ˁx
uA|C^߂lɂł邩BŁA݂Ă݂āv
wƁAAhXāA\āx

0064F4D8  00 00 00 00 34 F5 64 00 8D 38 40 00 8C F5 64 00 C0 01 52 00

wŁA return  i ̃AhXԂĂƁBAmԂƂŊ֐
I񂾂ˁx
uv
w return Ċ֐IƁA֐̕ϐɂȂ񂾂A
int *pi = &i; ݂ȈӖɂȂ񂾂ˁBccHx
u݂͂Ɂv

0064F4D8  60 38 40 00 34 F5 64 00 8D 38 40 00 8C F5 64 00 C0 01 52 00

wcc˂AĂƂ͂A RetBadPointer() ԂĂƂɂ
i ͂ȂȂĂłHx
uv
wĂƂ pi ɓĂAhXāx
u i ̌AhXA܂荡͉ɎgĂ邩ȂAhX
ĂƂˁv
wĂ΂ȂIHx
uoCB̂ pi ʂ i ̌ƂɒlĂ邯ǁA
͂ႢȂv
wAˁAVl邱ƂmFċɓ烄NU
̉ƂȂăVɂȂȂIx
u͂ǂ]łVɂȂȂ[ȁv
wႠq̃hAJ炨IIrqBȂr
݂ȃht`bNȂ̂́Hx
uꂾI@Ȃā[v
wȂāHx
u܂dvȂƂ́A֐̒ō[JϐA߂lƂĕ
_II@ĂƁv
wႢȂƂłႤ́Hx
uxołv
wAx
ułAsƂɃG[oȂA̓_ɂ͒Ӂv
wăeXgĂ킩ȂĂƂˁx
uv
wccӂƎv񂾂ǁAsĖȂȂA񂶂Ȃcc
Ă̂͂܂Ďv񂾂ǂx
uv
w󂿂񗬂ɌȂqpɂP~ʗA܁[Ȃ
Ȃłr݂ȊHx
uȂłP~ʁccv
w܁[łAȂ񂩂ƓĂۂ炢[A݂Ȋ
Ƃx
uAqȂƁr݂ȕ邩ˁBƂΊz
o鐻iĝƂāv
ŵČȂCɂȂȂƂႤȂˁx
ułɉe肷łv
ŵĂƂȂ񂾁BmɁA̗ႶełȂĂA
ȃvOg񂾂肵āAԎg肵Aeo邩
񂾂ˁx
udvȂ̂́Adg݂ƗĂāAȂłȂ̂
ĂƂƕĂĂƂ厖v
wB͐mBԂɂ̓K\AȂāAȂŃK\
ႢȂ̂AĂȂƂȂĂƂˁx
u䂱Ɓv
wAłAǃ[JϐĂȂȂႤ񂾂A
lƂă|C^Ԃ̂ă_ĂƂˁx
uƂ͌ȂBO̕ϐ̃|C^ԂƂ͂ł邩v

int *RetPointer( int *p_pi )
{
    return p_pi;
}

// ̊֐ĂтĂB
void CallRetPointer()
{
    int i = 100;
    int *pi = RetPointer( &i );
    TRACE( "%d\n", *pi );    // 100
}

wA RetPointer() ĖʔI@|C^󂯎āAԂ
񂾁x
u܁AAhXlčlāA󂯎ĕԂAĂƂˁv
wʂĂAhX́Å֐̕ϐȂ񂾁BA͑vȂ񂾂ˁx
uA[Jϐ́q֐IrAIȂ
ȂȂȂ킯v
wŁAʂĂAhX󂯎ĕ\ i ƓAˁx
uƁBƁAƓǁqϐ𓮓Iɍ쐬r
ƂłāÂƂɂ̓|C^Ԃ邩v
wǂ䂱ƁHx
uƁv

int *RetNewPointer()
{
    return new int;
}

void UseRetNewPointer()
{
    int *pi = RetNewPointer();
    *pi = 100;
    TRACE( "%d\n", *pi );    // 100
    delete pi;
}

w킠I@Ȃ񂩂Ȃނ`bNIx
uAۂƎv炿Ƃ͍xĂƂɂ邯ǁA
Ƃ肠ǂHv
w new  delete Ă̂ccx
u new ́Aȕ@ŕϐ邽߂̂́Bčƃ[J
ϐƂ͈Ⴄʂ̃^Cv̕ϐ邱Ƃłāv
w͊֐甲ĂȂȂȂHx
uƁB֐̊OłCŎg񂾂ǁAtɎgI
폜ȂႢȂĂfbg킯v
wꂪ delete Hx
uB@ȂA|C^ԂƂłłv
wAĂ[ΊȒPAȁx
ułȂ[BƂ΁A delete OɃAhX
Hv
w폜łȂccx
u delete ̂ɃAhXcĂāAɃANZXႤƂv
wccx
uĂƂŁAĝ͊yłAgȂ̂ɂ͂ȃeNjbN
Kvv
wmɂˁ[A[JϐȂ炻Sz͂Ȃ񂾂ˁx
u܁AFXӂȂႢȂ̂́AʂɃ|C^gv
w܂qA|C^ԂႢȂ񂾁rƂĂƂɋC
tĂKvĂƁHx
uƁv

/*
    Preview Next Story!
*/
w|C^ĒӕKvꐶĊx
u͂ǂȂɏnĂv
wAꂩƐSzȂႢȂ́Hx
û߂ɁAS߂eNjbN񂾂ȁv
wƂ킯Ŏx
 Version 4.14 Ɏg|C^AĎQ 
uɂÂIv
weNjbNgSz肵āx
uccv


/*                       ؂̗JT                           */
http://www.kab-studio.com/Programing/KanaU/
i݋x~łA䗹j


/*            QOOONVOOij̍XV\                */
http://www.kab-studio.com/Info/News/

EV\ccH
@V\H@ԂȂāijB邩A
B


/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.com/nikki2/
EvO~OɊւ鎿[L̗JT]ɂ肭B
http://www.kab-studio.com/Programing/KabuU/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
http://www.pubzine.com/detail.asp?id=000590
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198
http://www.kab-studio.com/Freeware/

/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/


/*                      See you next week!!                      */
