๋ฉ์ผ๊ณผ ํํ์ด์ง์ ์ฌ๋ผ์จ ์ง๋ฌธ ๋๋ฌธ์ ๋ด์ค๊ทธ๋ฃน์ ๋ช๋ช๊ธ์ ์ฝ๋ค๊ฐ ํ์ค๊ณผ
๊ด๋ จ๋ ๋ด์ฉ์ค ํ๋ฆฐ ๋ถ๋ถ์ (๋ชจ๋ ๋ชจ์์ --;) ๋ต๋ณ๋๋ฆฝ๋๋ค. ํ๋์ ๋ค์
์์ํ๋ ๊ฒ์ ์๋๋ ๋๋ฌด ์ผ๋ ค๋ง์๊ธฐ ๋ฐ๋๋๋ค.
์ฌ๋ฌ๋ถ์ด ํ์ค์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์๊ณ , ํ์ค์ ๋ฐํ์ผ๋ก ํ๋ํด ์ฃผ์๋ ๋ชจ์ต
์ ์ ๋ก์๋ ๋ฐ๊ฐ์ด ์ผ์ด์ง๋ง, ๋ต๋ณ์ ๊ทผ๊ฑฐ๋ก ํ์ค์ ์ธ๊ธํ ์ค ๋๋ ๊ทธ๋ง
ํผ ๊ทผ๊ฑฐ๋ก์ ํฐ ํ์ ๊ฐ์ง๋ ๋งํผ ์ข ๋ ์ ์ค์ ๊ธฐํด ์ฃผ์๊ธฐ๋ฅผ ๊ฐํ ๋ถํ๋
๋ฆฝ๋๋ค.
์ ๊ฐ ๊ธ์ ํฌ์คํ
ํ ๊ฒ์ ๋ํด ๋ถ๋ง์ ํ์ํ์๊ณ ์ถ์ผ์ ๋ถ์ ๊ฐ๊ธ์ ๊ฐ์ธ
๋ฉ์ผ์ ์ด์ฉํด ์ฃผ์๊ธฐ๋ฅผ ๊ฑฐ๋ญ ๋ถํ๋๋ฆฝ๋๋ค. ์ ๋ก ์ธํด ๋ค์ ํ๋ฒ ๊ทธ๋ฃน์ด
๋น๊ธฐ์ ์ ์ธ ๋ด์ฉ์ผ๋ก ์ฑ์์ง๋ ๊ฒ์ ๋ฐ๋ผ์ง ์์ต๋๋ค. ๊ทธ๋ผ, ๋์ด ์ฌ๋ฆ ์ฆ
๊ฑฐ์ด ๊ณต๋ถ ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
----------------------------------------------------------------------
"?ฮฝรธ? <ttl...@korea.com> wrote in message news:<9jjp91$fin$1...@news.netple.com>...
> cํ์ค๋ฌธ์๋(c99) ๋ฌด์์ด๋ฉฐ,
> ๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
C ํ์ค๋ฌธ์๋ ์ ๋ฃ์
๋๋ค. ๊ตญ๋ด ํ์ค ๊ธฐ๊ด๋ ๊ตญ์ธ ํ์ค ๊ด๋ จ ๊ธฐ๊ด์์ ๊ตฌ์
ํ์ค ์ ์์ต๋๋ค. ํ์ค์ ๋ํ ๋ช๊ฐ์ง ๋ด์ฉ์ ์ ํํ์ด์ง [ํ๋ก๊ทธ๋๋ฐ] -
[๊ธฐํ ๋ฌธ๊ฑด] ์ "C ์ธ์ด์ ์ญ์ฌ", [์ง๋ต ๊ฒ์ํ] "C ํ์ค์ ์๋ฃ ์ด๋์
๊ตฌํ ์ ์์๊น์?" ๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
----------------------------------------------------------------------
sha...@FILTER.aipiri.yonsei.ac.kr wrote in message news:<9jjbkc$se0$1...@news.netple.com>...
> [..]
> >void main( void )
> >{
> >/**/ exit(0);
> >}
>
> int main()์ผ๋ก ์์ ํ์๊ธธ ๊ถ์ฅํฉ๋๋ค.
>
> [..]
> >์์์ exit(1) ๊ณผ exit(0)๊ฐ ๋์ค๋๋ฐ 1๊ณผ 0์ด ๋ํ๋ด๋๊ฒ์ด ์ ํํ
> >๋ฌด์์ธ์ง์? True or False์ธ๊ฐ์?
>
> C PL์์์ ๊ด์ฌ์์ญ์ด ์๋๋๋ค. ์๋ฅผ๋ค์ด ์ด๋ค ํจ์์ ๋๋๋ฆผ ๊ฐ
>(return value)๊ฐ ์ด๋ค ์๋ฏธ์ด๊ณ ์ด๋ ํ ํ๋์ผ๋ก ์ฐ๊ฒฐ๋๋์ง๋ ์ฌ์ฉ์๊ฐ
>๊ฒฐ์ ํ๋ ๊ฒ์ฒ๋ผ, exit(),main(์์ ์ง์ (startup-entry point)๋ก ์ ์๋
>ํจ์)์ ๋ง์ง๋ง '}', return ๋ฌธ์ ๋ง๋ฌ์๋ ๋๋ ค์ง๋ ๊ฐ ์์ฒด์ ์๋ฏธ๋ ๊ทธ
>ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ์ฃผ-ํ๊ฒฝ(hosted environments)์ ์ํด ๊ฒฐ์ ์ด ๋ฉ๋๋ค.
๋ถ์ ํํ ํํ์
๋๋ค. ์ ํํ๋ ์คํํ๊ฒฝ (execution environment) ์ด๋ผ๋
์ฉ์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. C ์๋ 2๊ฐ์ ์คํํ๊ฒฝ์ด ์์ต๋๋ค. ๊ทธ ์ค ํ๋๊ฐ
hosted environment ์ผ ๋ฟ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ , C ๊ฐ exit() ๋ ์ด๊ธฐ ํธ์ถ main() ์ ์ํด ๋ฐํ๋๋ ๊ฐ์ ์๋ฌด๋ฐ
์๋ฏธ๋ฅผ ๋ถ์ฌํ์ง ์๊ณ ์์์ ์ธ ํด์์ ํ๋ฝํ๋ ๊ฒ์ ์๋๋๋ค. ์์ธํ
๋ด์ฉ์ ์ ํํ์ด์ง [hclc ๊ฒ์ํ], "main() ์์ return 0; ์ ํ๋ ์ด์ "
๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
----------------------------------------------------------------------
sha...@FILTER.aipiri.yonsei.ac.kr wrote in message news:<9j94d5$a7n$1...@news.netple.com>...
> >๋ชจ๋ pointer๋ณ์๋ ์ฃผ์๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ 4byte์
> >์์ญ์ ๊ฐ์ง๋๋ค.
>
> undefined in ISO C
>
๋ ์ ํํ๋ unspecified ์ ๋๋ค.
> >๋ฐ๋ผ์ ๋ชจ๋ pointer๋ณ์์ size๋ ๋์ผํ๊ฒ 4byte์
๋๋ค.
>
> undefined in ISO C
unspecified behavior
>
> >
> >int *a;
> >long *c;
> >char *c;
> >RECV_INAP_MSG_PA *pstPacket;
> >
> >sizeof(a) -> 4byte
> >sizeof(b) -> 4byte
> >sizeof(c) -> 4byte
> >sizeof(pstPacket) -> 4byte
>
> >์ค์ ๊ตฌ์กฐ์ฒด์ size๋ฅผ ์๊ณ ์ ํ ๋๋
> >sizeof(RECV_INAP_MSG_PA)๋ผ๊ณ ํ๋ฉด ๊ตฌ์กฐ์ฒด์ size๋ฅผ return
> >๋ฐ์์ ์์ต๋๋ค.
>
> struct๊ฐ abstract machine์์์ ์ ์ ํ๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ์๊ณ ์ ํ ๋๋
> sizeof operator๋ฅผ ์ฌ์ฉํด (stroage unit์ n๋ฐฐ๋ก์จ) ํฌ๊ธฐ๋ฅผ ์์๋ผ ์ ์์ต๋๋ค.
sizeof ์ ๊ฒฐ๊ณผ๋ storage unit ์ n ๋ฐฐ๊ฐ ์๋๋ผ byte ๋จ์์ ํฌ๊ธฐ์
๋๋ค.
๋ฌผ๋ก C ์์ byte ๋ ํญ์ 8๋นํธ๋ ์๋๋๋ค.
----------------------------------------------------------------------
"YoungKwan Kim" <br...@netsgo.com> wrote in message news:<5YmTSO1...@news2.sys.netsgo.com>...
> ๋จผ์ ๋๊ฐ์ง๋ก ์๊ฐํด ๋ด์ผ ํฉ๋๋ค.
> 1. void
> 2. void *
> void์ void*๋ ์ฝ๊ฐ ๋ค๋ฅธ ์ฑ๊ฒฉ์
๋๋ค.
> void๋ ๋ง ๊ทธ๋๋ก ์๋ฌด๊ฒ๋ ์๋ค๋ ๋ป์
๋๋ค.
>
> ํ์ง๋ง void *๋ ์ฝ๊ฐ ๋ค๋ฆ
๋๋ค.
> void* (voidํฌ์ธํฐ)๋ ํฌ์ธํฐ์ธ๋ฐ type์ด ์๋ค๋ ๋ป์
๋๋ค.
type ์ด ์๋ค๋ ๋ป์ด ์๋๋ผ, generic pointer ์
๋๋ค. void * ์ void ๋
๋ณธ์ง์ ์ผ๋ก ํฐ ๊ด๋ จ์ด ์์ต๋๋ค. (๊ทธ๋ฅ ๊ตฌ์ค ์ข๊ฒ void * ๋ฅผ generic
pointer ์ ๋น๋ ค ์ด ๊ฒ ๋ฟ์
๋๋ค - ๊ทธ๋ก์ธํด ์ธ์ด ์ ์์์ ๋ง์ ์ด์ํ ํด
์์ ํ๋ฝํ๊ธฐ๋ ํ์์ต๋๋ค) ์ฌ์ค์ void * ๋ char * ์ ๊ฐ์ ํํ, ๊ฐ์
์ ๋ ฌ์ ํ์ ๊ฐ๋๋ก ์๊ตฌ๋ฉ๋๋ค. ๋์
ํธํ์ฑ (assignment compatibility)
์ ๊ฐ๋๋ค๋ ์ ์ ์ ์ธํ๋ฉด (์ฆ, ์ ์ ํ ๋ช
์์ ์ธ ์บ์คํ
์ ๋ชจ๋ ํด์ค๋ค๋ฉด)
void * ์์ด๋ char * ๋ก generic pointer ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค (์ค์ ๋ก
pre-ISO ์์๋ ๊ทธ๋ ๊ฒ ํ์ง์). ์ฃผ์ํ์ค ์ ์ void * ๋ object pointer
์ generic pointer ์ด์ง, function pointer ์ generic pointer ๊ฐ ์๋๋ผ
๋ ์ ์
๋๋ค.
[...]
----------------------------------------------------------------------
>>์ด๋ก ๋๋กํ๋ฉด factorial์ด long๋ก ์ ์ธ๋์์ผ๋๊น ๊ทธ ๋ณด๋ค ํฐ ๊ฐ์ ์๋ ค
>์ ์๋ฆฐ๊ฐ์ด ๊ณ์ฐ๋์ ์๋ฏธ๋ ์์ง๋ง ๋ญ๊ฐ ๊ฐ์ด ๋์์ผ ํ ๊ฑฐ ๊ฐ์์์..
>
>Type์ ํ์ฉ๊ฐ๋ฅํ set of values์ ๋ฒ์๋ฅผ ๋์ด์ ์ฐ์ฐ์ ๋ํด ํ์ค์
>์๋ฌด๋ฐ ๋ณด์ฅ๋ ํ๊ณ ์์ง ์์ต๋๋ค. limit.h์ ์ ์ธ๋์ด์๋ ๊ฐ Type์
>๋ณด์ฅ๋ฐ๋ ๋ฒ์์ ๋ํด ์ดํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
type ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. overflow ๊ฐ ๋ฐ์ํ ์ ์๋ type ๋ ์์ต๋๋ค.
----------------------------------------------------------------------
>์๋
ํ์ธ์...
>
>์ ๊ฐ ๋ณด๊ธฐ์...
>http://pcrc.hongik.ac.kr/~progman/index.shtml
>์ ์ฌ์ดํธ๊ฐ ์์ฃผ ๋ง์ ๋์์ด ๋ ๋ฏ ํ๋ค์...
>
์ด ์ฌ์ดํธ์ ์๋ ๋ง์ ์๋ฃ์ ํ๋ฆฐ ๋ด์ฉ์ด ๋ง์ต๋๋ค. ANSI-C ๋ ISO-C ๋ผ
๋ ์ด๋ฆ์ ๋ด์์ฐ๋ฉฐ ์๋ชป๋ ๋ด์ฉ์ด ๋ง๊ธฐ ๋๋ฌธ์ ์ ์ํ์
์ผ ํฉ๋๋ค. ์๋ฅผ
๋ค๋ฉด ์์ ์ฌ์ดํธ์์ ๊ฐ์ ธ์จ ๋ฌธ์ ์ค ์ผ๋ถ์
๋๋ค. (๋ฌธ์ ์ ์ ๋ชฉ์ด "ํ์ค C
๋ผ์ด๋ธ๋ฌ๋ฆฌ (์ ํ 1)" ๋ผ๊ณ ๋ฐํ๊ณ ์์ต๋๋ค)
* main์ ๋ํ ์ค๋ช
์ค ๋ง๋ ๊ฒ์?
1 int main (int argc, char *argv[])๋ ANSI ํ์ค์ด๋ค.
2 ์ต์ ์ ANSI ํ์ค์ ๋ฐ๋ฅด๋ฉด main์ void type์ผ๋ก ํ๋ ๊ฒ์ ํ์ฉํ๋ค.
3 int main (void)๋ ANSI ํ์ค์ด ์๋๋ค.
4 main์์ return ๋ฌธ์ฅ์ ์ฐ๋ ๊ฒ์ exit ํจ์๋ฅผ ์ฐ๋ ๊ฒ๊ณผ ์์กฐ๋ ๋ณ๊ฐ์ด๋ค.
์ฌ๊ธฐ์๋ ๋ต์ 1๋ฒ์ผ๋ก ํ๊ณ ์๋๋ฐ, 4๋ฒ๋ ๋งค์ฐ ํ๋ฆฐ ๋ด์ฉ์ ์๋๋๋ค.
main() ์์์ return ๊ณผ exit() ์ ์ฌ์ฉ์ด ์ ํจํ ์ฐจ์ด๋ฅผ ๊ฐ์ ธ์ค๋ ์๋
์ผ๋ง๋ ์ง ์์ต๋๋ค.
* ๋ค์ expression ์ค ๊ฐ์ด 0์ด ์๋ ๊ฒ์? (int i;๋ก ์ ์ธ๋์ด ์ด๋ฐ๊ณ ๊ฐ์ )
1 i ^ i
2 i - i
3 i >> sizeof (i)
4 i & ~i
int ๊ฐ i ๋ก ์ ์ธ๋์ด ์๊ธฐ ๋๋ฌธ์, i ์ ๊ฐ์ด ๋ฌด์์ด๋์ ๋ฐ๋ผ ๋ต์ ๋ฌ๋ผ
์ง ์ ์์ต๋๋ค. (์ฌ์ค์ ์ด ๋ฌธ์ ์์๋ i ์ ์ด๊ธฐํ ์ฌ๋ถ์กฐ์ฐจ ์ด์ผ๊ธฐํ์ง
์๊ณ ์์ต๋๋ค) i ์ ๊ฐํด์ง๋ bitwise ์ฐ์ฐ์ implementation-defined ์ผ
๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ๋ฌธ์ ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ๊พธ๊ธฐ ์ํด์๋ i ๋ฅผ unsigned int ๋ก
์ ์ธํ๊ณ ์ด๊ธฐํ ํ์ด์ผ ํฉ๋๋ค. ์ด ์ธ์๋ ์ด์ ์ ์ฌํ ๋นํธ ์ฐ์ฐ์๋ฅผ ์ฌ
์ฉํ๋ ๋๋ถ๋ถ์ ๋ฌธ์ ๋ ํ๋ฆฐ ๊ฒ์
๋๋ค.
* ๋ค์ ์ค ํ๋ฆฐ ๊ฒ์ ๊ณจ๋ผ๋ฐ๋ผ.
1 malloc์ผ๋ก ํ ๋นํ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃํ ๋ ์๋์ผ๋ก free๋๋ค.
2 fopen์ผ๋ก ์ฐ ํ์ผ๋ค์ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃํ ๋ ์๋์ผ๋ก fclose๋๋ค.
3 Null pointer๋ฅผ ์ป๊ธฐ ์ํด์๋ ๋ฐ๋์ NULL์ ์จ์ผ ํ๋ค. 0์ ๋์ ์ฐ๋ ์ค์๋ฅผ ํ๋ฉด ํด๋๋ค.
4 ์์ 0์ type์ int์ด๋ค.
clc FAQs ๋ฅผ ๋ณด๊ณ ๋ง๋ ๋ฌธ์ ์ธ ๋ฏ ํ๋ฐ, ๋ต์ 3๋ฒ์ด๋ผ๊ณ ๋งํ๊ณ ์์ง๋ง, 1
๋ฒ๋ ์ฌ๋ฐ๋ฅธ ๋ด์ฉ์ด ์๋๋๋ค.
----------------------------------------------------------------------
๊ทธ๋ฆฌ๊ณ , ์๋๋ ์ ํํ์ด์ง [์์ ๊ฒ์ํ] ์์ ๋ต๋ณํ ๋ด์ฉ์
๋๋ค (๊ทธ ์
์ ์ผ๋ํ๊ณ ์ฝ์ด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค).
>> struct man {
>>
>> int age;
>> char name[10];
>> };
>>
>> int main() {
>>
>> struct man ko;
>>
>> ko.age = 12;
>> ko.name = "noname";
>
>๋ฐฐ์ด์ expression์ ์ฌ์ฉ์ด ๋ ๊ฒฝ์ฐ constant pointer๋ก conversion์ด
>๋ฉ๋๋ค(sizeof๋ ์ ์ธ). ๋ฐ๋ผ์ ์์ ์์์ ๋ถ๋ฒ์
๋๋ค.
constant pointer ๋ผ๋ ๊ฒ์ ์์ต๋๋ค. [hclc ๊ฒ์ํ] ์ "Re: ํฌ์ธํฐ์ ๋ฐฐ
์ด์ ๋ํ ๊ฐ๋
์ฐจ์ด" ๋ผ๋ ๊ธ์ ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๊ตญ๋ด์ ๋ง์ ์ฑ
๊ณผ ์ฌ๋๋ค
์ด "ํฌ์ธํฐ ์์", "constant pointer" ๋ฑ์ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง, ์ฌ๋ฐ
๋ฅธ ๊ฐ๋
์ด ์๋๋๋ค. ์ ๋์
์์์ ๋ฐฐ์ด์ "noname" ์ ๊ฐ๋ฅดํค๋ ํฌ์ธํฐ๋ฅผ
๋์
ํ ์ ์๋ ์ด์ ๋ ๋ฐฐ์ด์ด lvalue ์ด๊ธฐ๋ ํ์ง๋ง, modifiable lvalue
๊ฐ ์๋๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ํ ๋ฐฐ์ด์ด ํฌ์ธํฐ๋ก decay ๋์ง ์๋ ๊ฒฝ์ฐ๋ก๋ sizeof ์ ํผ์ฐ์ฐ์ ๋ฟ ์
๋๋ผ ์๋์ ๊ฐ์ด 3๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
1. sizeof ์ ํผ์ฐ์ฐ์
2. & ์ฐ์ฐ์์ ํผ์ฐ์ฐ์
3. array of char ๋ฅผ ์ด๊ธฐํํ๋๋ฐ ์ฌ์ฉ๋๋ string literal
์: char str[20] = "ABCDE";
์ด ๋ฐฐ์ด, ํฌ์ธํฐ ๋ฌธ์ ์ ๊ด๋ จํด์๋ [hclc ๊ฒ์ํ] ์ ์ด๋ฏธ ๋ง์ ๊ธ์ด ์ฌ๋ผ
์ ์์ต๋๋ค. ์ฝ์ด๋ณด์๋ฉด ๋์์ด ๋๋ฆฌ๋ผ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด,
"๋ฐฐ์ด, ํฌ์ธํฐ, malloc ์ ๊ด๊ณ"
"ํฌ์ธํฐ ๊ด๋ จ ์ง๋ฌธ"
"๋ฐฐ์ด ์ด๊ธฐํํ๊ธฐ์ memset"
"ํฌ์ธํฐ์ ๋ฐฐ์ด์ ๋ํ ๊ฐ๋
(2)"
"ํฌ์ธํฐ์ ๋ฐฐ์ด์ ๋ํ ๊ฐ๋
์ฐจ์ด"
[...]
----------------------------------------------------------------------
>>> ko.age = 12;
>>> ko.name = "noname";
>>
>>๋ฐฐ์ด์ expression์ ์ฌ์ฉ์ด ๋ ๊ฒฝ์ฐ constant pointer๋ก conversion์ด
>>๋ฉ๋๋ค(sizeof๋ ์ ์ธ). ๋ฐ๋ผ์ ์์ ์์์ ๋ถ๋ฒ์
๋๋ค.
>>
>>> ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ์ค์ ๋ฐฐ์ด์ ์์๊ฐ์ด ์ด๊ธฐํ ์ํค๋๊ฒ
>>> ์ ์๋ชป๋๊ฒ์ธ๊ฐ์? ๋ฉค๋ฒ๋ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ด๊ธฐํ ์ํค๋ ค๋ฉด
>>> ์ด๋ป๊ฒ ํด์ผ ํ๋์ง์?
>>
>>struct man m1={12,"noname"};
>>
>>๊ณผ ๊ฐ์ด ์ฌ์ฉํ์๋ ๊ฒ์ด initialization์
๋๋ค.
>>
>
>์ ๊ทธ๋ ๊ฒ ํด์ผ๋ง ๋์ฃ ?
>๋ฉค๋ฒ์ ๊ฐ์ ํ๋ก๊ทธ๋จ ์ํ๋์ค ๋ณ๊ฒฝํด์ผ ํ ๊ฒฝ์ฐ์ ์ด๋กํ์ฃ ?
>
์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ ์ ์์ต๋๋ค. ๋ฐฐ์ด์ ์์ ๊ฐ๊ฐ์ ๋ฐ๋ก ์ ๊ทผํ๋ ค๋ฉด,
ko.name[2] = 'A';
๋ฑ์ด ์์ ์ ์๊ณ ,
ko.name[0] = 'A';
ko.name[1] = 'B';
ko.name[2] = '\0';
์์ ๊ฐ์ ์์ ์ ์ฝ๊ฒ ํด์ฃผ๋ ๊ฒ์ด
strcpy(ko.name, "AB");
์ผ ๋ฟ์
๋๋ค. ์ฆ, strcpy() ๋ผ๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์ ๋ด์์๋ (๊ฒ์ผ๋ก
๋ณด๊ธฐ์๋) ์์ ๊ฐ์ ์ฌ๋ฌ๋ฒ์ ๋์
์์
์ (๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํจ์ฌ ๋ ํจ์จ์
์ผ๋ก) ๋์ ํด์ฃผ๊ณ ์๋ ๊ฒ ๋ฟ์
๋๋ค.
----------------------------------------------------------------------
>[..]
>>>struct man m1={12,"noname"};
>>>๊ณผ ๊ฐ์ด ์ฌ์ฉํ์๋ ๊ฒ์ด initialization์
๋๋ค.
>[..]
>>์ ๊ทธ๋ ๊ฒ ํด์ผ๋ง ๋์ฃ ?
>
>์ด๊ธฐํ(initializaion)๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ๋์์ ์ ์ฅ ๊ณต๊ฐ(stroage space
>: r-value)๋ด์
storage space ๋ผ๋ ์ฉ์ด๋ณด๋ค๋ ๊ทธ๋ฅ storage ๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ
๋ฆฌ๊ณ ๊ฐ์ ์ ์ฅํ ์ ์๋ storage ๋ lvalue ๋ก ๋ณด๋ ๊ฒ์ด ๋ ๋ฐ๋์งํ๋ฉฐ
์ฌ์ค์, storage ์ lvalue ์๋ ๊น์ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด ๋์ ๋ฌถ์ด์ ์
๊ฐํ๋ ๊ฒ์ด ํธํ ์ง ๋ชจ๋ฅด์ง๋ง, ์ฐ๊ฒฐํด์ ์๊ฐํด ๋๋ฉด ํ์ ๋ณต์กํ ๋ฌธ์ ๋ฅผ
๋ง๋ ์ ์์ต๋๋ค. lvalue ์ ์ ํํ ์ ์์ ๋ํด์๋ [hclc ๊ฒ์ํ] ์ ์
๋ ๊ธ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
"C ์์์ lvalue ์ ์ ์"
>ํน์ ๊ฐ์ ๋ฃ๋ ๊ฒ์
๋๋ค. OP์ ์ง๋ฌธ์ ๋ถ๋ช
struct์ ์ด๊ธฐํ์ ๋ํ ์ง๋ฌธ์ด์์ต๋๋ค.
>
>ISO C์์๋ ๊ฑฐ์ ๋๋ถ๋ถ์ ๋ณ์ ์ ์ธ(declaration)์ ์ด๊ธฐ์
>(initializer)๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ,
๋ฌด์จ ๋ง์์ ํ๊ณ ์ถ์ผ์ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๋ฌธ๋ฒ์ ์ผ๋ก ์ ์ธ์ ์ด๊ธฐ์น๊ฐ ์ฃผ
์ด์ง ์ ์๋ค๋ ๋ป์ด๋ผ๋ฉด. ๋ฌธ๋ฒ์ ์ผ๋ก๋ ๋ชจ๋ ๋์์ฒด์ ์ ์ธ์ ์ด๊ธฐ์น๊ฐ ์ฃผ
์ด์ง ์ ์์ต๋๋ค. ๋ฌผ๋ก , ์ ์ธ๋๋ ๋์์ฒด์ type ์ด ๋ฌด์์ด๋์ ๋ฐ๋ผ ์ด๊ธฐ
์น๊ฐ ์์ผ๋ฉด ์ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ ๋ฟ์ด์ง์.
> ์ด๋ฅผ ํตํด์๋ง์ด ์์๊ฐ์ ์ผ์ ํด ์ค ์ ์์ต๋๋ค(๋ง์ผ ์ง์ ๋์ง ์์
> ์ด๊ธฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ด ํ ๋น ๊ฒฐ๊ณผ๋ ์์ธก๋ถ๊ฐ๋ฅ(unpredictable)ํฉ๋๋ค.).
"์ง์ ๋์ง ์์ ์ด๊ธฐ์"? ์ด ๋ถ๋ถ๋ ๋ฌด์์ ์ด์ผ๊ธฐํ๊ณ ์ถ์ผ์ ์ง ์ ๋ชจ๋ฅด๊ฒ
์ง๋ง, ๋ค์ 2๊ฐ์ง์ค ํ๋๋ฅผ ์ค๋ช
ํ๊ณ ์ถ์ผ์ ๋ฏ ํฉ๋๋ค.
1. ์ด๊ธฐ์น์ ์ฃผ์ด์ง ์ ์๋ type ์ ๋์
๋ณํ (assignment conversion)
์ ์ํด ํ๋ฝ๋ ๊ฒ์ด์ด์ผ ํจ.
์: int p = (int *)0; /* invalid */
2. ๋ช
๋ฐฑํ ์ด๊ธฐ์น๊ฐ ์ฃผ์ด์ง์ง ์์ ๊ฒฝ์ฐ ๊ทธ ๋์์ฒด์ ์ด๊ธฐ๊ฐ์ storage
duration ์ ๋ฐ๋ผ (auto, static, allocated) ์ด๊ธฐ์น๊ฐ ์ ์๋ ์ง ์๋
์ง๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์๋์ ๊ฐ์ ํฌ์ธํฐ๋ฅผ file scope ์์ ์
์ํ๋ค๋ฉด,
int *pi;
์ด ๋์ ๋ช ๋ฐฑํ ์ด๊ธฐ์น๊ฐ ์์ด๋ null pointer ๋ก ์ด๊ธฐ์น๋ฅผ ๊ฐ์ต๋๋ค.
----------------------------------------------------------------------
>
>[..]
>>๋ฉค๋ฒ์ ๊ฐ์ ํ๋ก๊ทธ๋จ ์ํ๋์ค ๋ณ๊ฒฝํด์ผ ํ ๊ฒฝ์ฐ์ ์ด๋กํ์ฃ ?
>
>๋ณ๊ฒฝํ๊ณ ์ ํ๋ ๊ตฌ์กฐ์ฒด(structure)๋ด์ ๊ตฌ์ฑ์์(component)์ ๋จ์ ํ ๋น
component ๋ณด๋ค๋ member ๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
>์ฐ์ฐ์(simple assignment operators)๋ฅผ ์ ์ฉํด ๊ฐ์ ๋ณ๊ฒฝ๋ค์ญ์์.
>๋จ์ ํ ๋น ์ฐ์ฐ์์๋ '=,+=,/=,|=,*=,&='๋ฑ์ด ์์ต๋๋ค.
simple assignment opertaor ๋ = ํ๋ ๋ฟ์
๋๋ค. op= ํํ์ ์ฐ์ฐ์๋
simple assignment operator ๊ฐ ์๋๋๋ค.
----------------------------------------------------------------------
>>[..]
>>>>struct man m1={12,"noname"};
>>>>๊ณผ ๊ฐ์ด ์ฌ์ฉํ์๋ ๊ฒ์ด initialization์
๋๋ค.
>>[..]
>>>์ ๊ทธ๋ ๊ฒ ํด์ผ๋ง ๋์ฃ ?
>>
>>์ด๊ธฐํ(initializaion)๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ๋์์ ์ ์ฅ ๊ณต๊ฐ(stroage space : r-value)๋ด์ ํน์ ๊ฐ์ ๋ฃ๋ ๊ฒ์
๋๋ค. OP์ ์ง๋ฌธ์ ๋ถ๋ช
struct์ ์ด๊ธฐํ์ ๋ํ ์ง๋ฌธ์ด์์ต๋๋ค.
>>
>>ISO C์์๋ ๊ฑฐ์ ๋๋ถ๋ถ์ ๋ณ์ ์ ์ธ(declaration)์ ์ด๊ธฐ์(initializer)๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด์๋ง์ด ์์๊ฐ์ ์ผ์ ํด ์ค ์ ์์ต๋๋ค(๋ง์ผ ์ง์ ๋์ง ์์ ์ด๊ธฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ด ํ ๋น ๊ฒฐ๊ณผ๋ ์์ธก๋ถ๊ฐ๋ฅ(unpredictable)ํฉ๋๋ค.).
>>
>
>๋ง์ํด์ฃผ์ ์ด๊ธฐ์(initializer)์ ๋ํด ์กฐ๊ธ ๋ ๋ถ์ฐ์ค๋ช
์ ๋ถํ๋๋ ค๋ ๋ ๊น์?
>
์์์ ๋ค๋ฅธ ๋ถ์ด ๋ง์ํด ์ฃผ์ ๋๋ก ์ด๊ธฐํ๋ผ๋ ๊ฒ์ ๋์์ฒด๋ฅผ ์ํ ์ด๊ธฐ์น
(๊ทธ ๋์์ฒด๊ฐ ๊ฐ๋ ์ด๊ธฐ์ ๊ฐ) ๋ฅผ ๋ช
์ํด ์ฃผ๋ ๊ฒ์
๋๋ค. ๋ฌผ๋ก , C ์์๋
๋์
์ฐ์ฐ์๋ฅผ ํตํ ๋์
๋ณด๋ค ์ด๊ธฐํ๋ฅผ ํตํ ๋์
(?)์ ๋ ๋ง์ ์ตํต์ฑ์
ํ๋ฝํ๊ณ ์์ต๋๋ค ({123, 234, 456} ํํ๋ก ์ด๊ธฐ์น๊ฐ ์ฃผ์ด์ง๋ ๊ตฌ์กฐ์ฒด๋
๋ฐฐ์ด ์ด๊ธฐํ์์ ์ ์ ์์ง์, ๋ฌผ๋ก C99 ์์๋ compound literal ์ด๋ผ๋
๊ฒ์ ๋์
ํ์ฌ ์ด๋ฅผ ๋์
์์์์๋ ํ๋ฝํ๊ณ ์์ต๋๋ค - ๊ด๋ จ๋ ์๋
[hclc ๊ฒ์ํ] ์ "ANSI-C(C89), ISO-C(C90, C99)" ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค).
๋ํ ์ญ์ผ๋ก, ๋์
์ ์ด๊ธฐํ๋ณด๋ค ๋ ๋ง์ ์์ ๋ฅผ ํ๋ฝํ๊ณ ์์ต๋๋ค (์๋ก
๋, storage duration ์ด static ์ธ ๋์์ฒด์ ์ด๊ธฐ์น์ ์ฃผ์ด์ง๋ ์ ์ฝ์ ๋ค
์ ์์ต๋๋ค - ๋ณด๋ค ์์ธํ ๋ด์ฉ์ K&R2 RM ์ ์ด๊ธฐํ ๋ถ๋ถ์ ๋ณด์๊ธฐ ๋ฐ๋
๋๋ค). ๋ง์ ๋ถ๋ค์ด ์ค๋ช
์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ์ด๊ธฐํ๋ฅผ ๋์
๊ณผ ์ ์ฌํ ๊ฒ
์ผ๋ก ์ค๋ช
ํ์ง๋ง, C ์์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ด๊ธฐํ์ ๋์
์ด ๋ค๋ฅผ ์ ์๋ ๊ฒฝ
์ฐ๊ฐ ์์ต๋๋ค (array of char ์ "ABC" ๋ฑ์ ์ด๊ธฐ์น๋ก ์ฃผ๋ ๊ฒฝ์ฐ์ ๋์
์
์์์ ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ถ๋ช
ํ ์์ด๊ฒ ์ง์).
K&R2 RM ์ ์ด๊ธฐํ (initialization) ๋ถ๋ถ์ ๋ณด์๋ฉด, ์ ์ธ์ ์ด๊ธฐ์น์ ๋ํ
๋ฌธ๋ฒ๊ณผ ์ฌ๋ฌ๊ฐ์ง ํ๋ฝ, ์ ์ฝ ์ฌํญ๋ฑ์ ๊ณต๋ถํ์ค ์ ์์ต๋๋ค (๋ฌผ๋ก , ๋ค๋ฅธ C
์ฑ
๋ ์ ๋ค๋ฃจ๊ณ ์๋ ๋ด์ฉ์ด๋ผ ๋ฏฟ์ต๋๋ค).
๊ทธ๋ผ...
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
-----------------===== Posted via NetPle Usenet Service =====-----------------
http://news.NetPle.com ์ ์ ์ํ์๋ฉด ์๋ก์ด ์ ์ฆ๋ท์ด ์ด๋ฆฝ๋๋ค.
ISO C์์ ์ ์ฅ๋จ์(stroage unit)๋ byte๋ก ์ง์ ์ด ๋์ด์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฐ๋ฅธ ๋ต๋ณ์ ๋๋ค.
>๋ฌผ๋ก C ์์ byte ๋ ํญ์ 8๋นํธ๋ ์๋๋๋ค.
์ง๋นํ์ ๋ง์์ด์ญ๋๋ค.
r-value์๋ํด ์ดํด๋ณด์ ํ ๋ค์ ์๊ฐํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ์ ์ฅ๊ณต๊ฐ(stroage space)๋ ์ ์ฅ๋ ๊ณณ์ ์์์ง์ ๊ณผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฉ์ด์ ๋๋ค.
>์ฌ์ค์, storage ์ lvalue ์๋ ๊น์ ๊ด๋ จ์ด ์์ต๋๋ค.
r-value์ ๋ํด ์์ ๋ค๋ฉด ๋๋ฌด๋ ์ง๋นํ์ ๋ง์์ ํ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค.
>"C ์์์ lvalue ์ ์ ์"
C์์ r-value๋ ์ ์๊ฐ ์๋์ด์๋์ง ๊ถ๊ธํ๊ตฐ์.
>...constant pointer ๋ผ๋ ๊ฒ์ ์์ต๋๋ค...modifiable lvalue
modifiable lvalue์ constant pointer๋ผ๋ ๊ฒ์ ์๋ฏธ์ ์ธ ์ฐจ์ด์ ๋ํด ์ดํด๊ฐ ๊ฐ์ง ์๋๊ตฐ์. ์์ธํ ์ค๋ช ์ ๋ถํ๋๋ฆฝ๋๋ค(๋ ๊ฐ์ง๊ฐ ์ฐจ์ด๊ฐ ์๋ค๋ฉด ์ ์ธ๊ณ์ ์ธ ๊ฑฐ์ฅ๋ค๋ ์ค์๋ฅผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค).
๋ง์ ์ฑ ์ H&S4, ABC๋ฑ์ ์ ๋ช ์์ ์ด ํฌํจ๋๋ ๊ฒ์ ์ ๊ฐ์ด๊ตฐ์. ํ์คํ K&R2์์ constant pointer๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ ์์ต๋๋ค. ํ์ค๋ฌธ์์์๋ ๋ฌผ๋ก ์ด๊ณ .
>๋ถ์ ํํ ํํ์
๋๋ค. ์ ํํ๋ ์คํํ๊ฒฝ (execution environment) ์ด๋ผ๋
>์ฉ์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. C ์๋ 2๊ฐ์ ์คํํ๊ฒฝ์ด ์์ต๋๋ค. ๊ทธ ์ค ํ๋๊ฐ
>hosted environment ์ผ ๋ฟ์
๋๋ค.
์ ํํ ๋ต๋ณ์ด์์ต๋๋ค. freestanding environment์์๋ function call of starup entry point์ ๋ํด ์๋ฌด๋ฐ ์ ์ฝ์ ํ๊ณ ์์ง ์์ผ๋ฉฐ, mainํจ์๋ฅผ startup entry point๋ก ์ ์๋ ์ํฉ์์์ ๋๋๋ฆผ๊ฐ์ ์ฐ์์๋ ๋น์ฐํ hosted environments์์๋ง ์ ์๊ฐ ๋ ์ ์์ต๋๋ค(๋ฌผ๋ก freestanding environment์์ main์ด๋ผ๋ ์ด๋ฆ์ ํจ์๋ฅผ start-up์ผ๋ก ์ผ๋๋ค๋ฉด ๋ ๋ค๋ฅธ ์๊ธฐ์ง๋ง).
์ค์ํ๊ตฐ์.
A compound assignment of the form E1 op= E2
>[..]
>>>์ด๊ธฐํ(initializaion)๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ๋์์ ์ ์ฅ ๊ณต๊ฐ(stroage space
>>>: r-value)๋ด์
>>
>>storage space ๋ผ๋ ์ฉ์ด๋ณด๋ค๋ ๊ทธ๋ฅ storage ๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ
>>๋ฆฌ๊ณ ๊ฐ์ ์ ์ฅํ ์ ์๋ storage ๋ lvalue ๋ก ๋ณด๋ ๊ฒ์ด ๋ ๋ฐ๋์งํ๋ฉฐ
>
>r-value์๋ํด ์ดํด๋ณด์ ํ ๋ค์ ์๊ฐํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ์ ์ฅ๊ณต๊ฐ(stroage
>space)๋ ์ ์ฅ๋ ๊ณณ์ ์์์ง์ ๊ณผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฉ์ด์
๋๋ค.
ํ์ค์ Normative part ์๋ rvalue ๋ผ๋ ์ฉ์ด๊ฐ ์์ต๋๋ค. ๊ทธ๋ฅ value ๋ผ
๋ ์ฉ์ด๋ฅผ ๋์ ์ฌ์ฉํ๋ค๊ณ footnote ์์ ๋ฐํ๊ณ ์์ต๋๋ค. ๋ํ, storage
space ๋ผ๋ ์ฉ์ด ์ญ์ ์์ต๋๋ค (๋๊ป์ ์๋ํ์ ํํ์ ์ํ ์ฉ์ด๋ก๋
object ๊ฐ ์์ต๋๋ค). ์ฉ์ด๋ฅผ ์ ํํ๊ฒ ๋ฐ์ง์ง ์๋๋ค๋ฉด ํฐ ๋ฌด๋ฆฌ๊ฐ ์๋ ์ค
๋ช
์ผ ์ ์์ง๋ง, "ํ์ค" ์ ๋ํด์ ์ด์ผ๊ธฐํ์๋ฉด ๋ ๋ค ๋ช
ํํ์ง ์์ ํํ
์
๋๋ค.
>
>>์ฌ์ค์, storage ์ lvalue ์๋ ๊น์ ๊ด๋ จ์ด ์์ต๋๋ค.
>
>r-value์ ๋ํด ์์ ๋ค๋ฉด ๋๋ฌด๋ ์ง๋นํ์ ๋ง์์ ํ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค.
>
rvalue ๋ ๊ทธ๋ฅ "๊ฐ" ์
๋๋ค. ๋ฐ๋ผ์, storage ์ ์ ์ฅ๋๋ "๊ฐ" ์ ์ด์ผ๊ธฐ
ํ๊ณ ๊ณ์ ๊ฒ์ด๋ผ๋ฉด rvalue ๋ผ๋ ํํ์ด ๋ง์ต๋๋ค. ํ์ง๋ง, C ์์ ๋ณธ์ง์
์ผ๋ก rvalue ๋ storage ๋ฅผ ๊ฐ์ง ์์ต๋๋ค (์๋ฅผ ๋ค๋ฉด ์ ์์์ 100 ์
storage ๋ฅผ ๊ฐ์ง ์์ผ๋ฉฐ, rvalue ์
๋๋ค). storage ์ "๊ฐ" ์ฆ, rvalue ๋ฅผ
์ ์ฅํ๋ค๋ ๊ฒ์ ๊ทธ storage ๋ฅผ ์ง์ (designating) ํ๋ lvalue ๋ฅผ ํตํด์
๊ฐ์ ์ ์ฅํ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์, "(storage space : r-value)" ๋ผ๋ ํํ
์ ์คํด๋ฅผ ์ผ์ผํฌ ์ ์๋ ํํ์ด๋ผ ์๊ฐํฉ๋๋ค.
----------------------------------------------------------------------
>
>>>...constant pointer...
>
>>...constant pointer ๋ผ๋ ๊ฒ์ ์์ต๋๋ค...modifiable lvalue
>
>modifiable lvalue์ constant pointer๋ผ๋ ๊ฒ์ ์๋ฏธ์ ์ธ ์ฐจ์ด์ ๋ํด ์ด
>ํด๊ฐ ๊ฐ์ง ์๋๊ตฐ์. ์์ธํ ์ค๋ช
์ ๋ถํ๋๋ฆฝ๋๋ค(๋ ๊ฐ์ง๊ฐ ์ฐจ์ด๊ฐ ์๋ค
>๋ฉด ์ ์ธ๊ณ์ ์ธ ๊ฑฐ์ฅ๋ค๋ ์ค์๋ฅผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค).
์ธ๊ณ์ ์ธ ๊ฑฐ์ฅ๋ค์ด ์ ๋๋ก ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด lvalue, array, pointer
์ ๊ด๋ จ๋ ๋ถ๋ถ์ ์ ๋๋ก ์ดํดํ๊ธฐ๋, ๋ ์ ๋๋ก ์ค๋ช
ํ๊ธฐ๋ ์ด๋ ค์ด ๋ถ๋ถ์ผ
๋ก ์ ๋ช
ํฉ๋๋ค. ์์ํ์์๋ ์ด ๋ถ๋ถ์ ์ด๋ป๊ฒ ์ ์ํ๋๋๋ฅผ ๊ฐ์ง๊ณ ๋ง์
๊ณ ๋ฏผ์ ํ์์ต๋๋ค.
>
>๋ง์ ์ฑ
์ H&S4, ABC๋ฑ์ ์ ๋ช
์์ ์ด ํฌํจ๋๋ ๊ฒ์ ์ ๊ฐ์ด๊ตฐ์. ํ์คํ
>K&R2์์ constant pointer๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ ์์ต๋๋ค. ํ์ค๋ฌธ
>์์์๋ ๋ฌผ๋ก ์ด๊ณ .
>
H&S4, ABC, K&R2 ๋ชจ๋ ํ์ค์ด ์๋๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ์ฌ "ํ์ค" ์ ๋ํด์ ์ด
์ผ๊ธฐํ๊ณ ์๋ค๋ฉด ๊ทธ๋ฌํ ๋ชจํธํ ํํ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋์งํ์ง ์์ต๋
๋ค. constant pointer ๋ผ๋ ์๋ฏธ๋ ๋ง์น ๋ฐฐ์ด์ด rvalue ์ธ ๊ฒ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ
๋ดํฌํ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ์์ฐํ ๋ฐฐ์ด๋ lvalue ์
๋๋ค. ๋ค๋ง,
modifiable lvalue ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋์
์ฐ์ฐ์ ์ข์ธก ํผ์ฐ์ฐ์๋ก ์ฌ ์
์๋ ๊ฒ ๋ฟ์
๋๋ค.
์ฐ๋ฆฌ ๋๋ถ๋ถ์ (์ ๋ ์ด๊ธฐ์๋) lvalue ๋ ๋์
์ฐ์ฐ์์ ์ข์ธก (left) ํผ์ฐ
์ฐ์๋ก ์ฌ ์ ์๋ ์์์ด๋ผ๊ณ ์๊ณ ์์ต๋๋ค. ์ค์ ๋ก lvalue ๋ผ๋ ์ฉ์ด์
์ l (ell) ์ left ์์ ๋ฐ ์จ ๊ฒ์
๋๋ค. ํ์ง๋ง, C ํ์ค์์๋ ์ด๋ฅผ ๊ทธ๋
๊ฒ ์ ์ํ์ง ์๊ณ locator value ๋ผ๊ณ ์ ์ํ๊ณ ์์ต๋๋ค. (locator value
๊ฐ ๊ณต์์ ์ธ ์ฉ์ด๋ ์๋๋๋ค. Informative part ์์ ์ฌ์ฉ๋ ์ฉ์ด์
๋๋ค)
์ฆ, (C90/C99 ์์ ๋ฐ์ํ๋ ์ฐจ์ด๋ฅผ ๋ฌด์ํ๊ณ ๋๊ฐ ์ด์ผ๊ธฐํ์๋ฉด) storage
๋ฅผ ์ง์ ํ๋ ๋ชจ๋ ์์์ lvalue ์
๋๋ค. ์ด๋ฌํ ํด์์ ๋ฐ๋ฅด๋ฉด ๋ฐฐ์ด๋ ๋น
์ฐํ lvalue ๊ฐ ๋๋ฉฐ, modifiable lvalue ๋ผ๋ ๊ฐ๋
์ ๋์
ํด, ๋์
์ฐ์ฐ์
์ ์ข์ธก์ ์ค๋ ๊ฒ์ ๋ง๋ ๊ฒ์
๋๋ค. ๋ง์ ์ฑ
์์ ์ฌ์ฉํ๊ณ ์๋ ํฌ์ธํฐ ์
์ (constant pointer) ๋ผ๋ ๊ฐ๋
์ ๋ง์ ๋ฌธ๋งฅ์์ ํฌ์ธํฐ๋ก ๋ณํ๋๋
(decay) ๋ฐฐ์ด์ ์ค๋ช
ํ๊ธฐ์ ํธ๋ฆฌํ ๊ฐ๋
์ด์ง๋ง, ๋ฐฐ์ด ์์ฒด๊ฐ lvalue ๋ผ๋
์ฌ์ค์ ์๋ชป ์ ๋ฌํ ์ ์๋ ์ค๋ช
๋ฐฉ๋ฒ์
๋๋ค. ๋ฐฐ์ด์ด ํฌ์ธํฐ "์์"๊ฐ ๋์ด
๋ฒ๋ฆฌ๋ฉด, ๋ฐฐ์ด์ ํผ์ฐ์ฐ์๋ก ์ํํ ์ ์๋ ๋ง์ ์ฐ์ฐ์ด ๋ชจ์์ ๋น ์ง ์ ์
์ต๋๋ค (๋ฌผ๋ก , ๊ทธ๋ฌํ ๋ชจ์์ ๋๊ฐ๊ณ ์ง๋๊ฐ๋ค๋ฉด ๊ฒฐ๋ก ์ ์ผ๋ก ์ป๊ฒ๋๋ ์ค์ง
์ ์ธ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ ๋์ผํ๊ฒ ์ง๋ง).
----------------------------------------------------------------------
>[..]
>>sizeof ์ ๊ฒฐ๊ณผ๋ storage unit ์ n ๋ฐฐ๊ฐ ์๋๋ผ byte ๋จ์์ ํฌ๊ธฐ์
๋๋ค.
>
>ISO C์์ ์ ์ฅ๋จ์(stroage unit)๋ byte๋ก ์ง์ ์ด ๋์ด์์ต๋๋ค. ๋ฐ๋ผ์
>์ฌ๋ฐ๋ฅธ ๋ต๋ณ์
๋๋ค.
์ค์ ํ์ค์ normative text ์์ ์ธ์ฉ๋ ์ฉ์ด๋ ํํ์ด ์๋๋ผ๋ฉด, ๊ทผ๊ฑฐ๋ก
ํ์ค์ ์ฌ์ฉํ์ค ๋ ์ข ๋ ์ ์ค์ ๊ธฐํด์ฃผ์
จ์ผ๋ฉด ํ๋ ๋ฐ๋จ์
๋๋ค. ํ์ค์
storage unit ์ด๋ผ๋ ์ฉ์ด๋ฅผ byte ๋ฅผ ๊ฐ๋ฅดํฌ ๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. ํ์ค์
byte ๋ผ๋ ๋ช
ํํ ์ฉ์ด๋ฅผ ์ ์ํด์ ๋์ด storage unit ์ผ๋ก ํํํ๋ ๊ฐ๋
์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ, storage unit ๋ผ๋ ์ฉ์ด๋ ๊ตฌ์กฐ์ฒด/๊ณต์ฉ์ฒด์์ ๋นํธํ
๋๊ฐ ์กด์ฌํ๋ addressable storage unit ๋ก ์ฌ์ฉ๋๋ ์ฉ์ด์
๋๋ค. ๋ง์ฝ ํ
์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ธฐ์ ํ๊ณ ์๋ค๊ณ ์๋ถํ๋ ์ฑ
์์ byte ๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ๋ก
storage unit ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์กฐ๊ธ ๋ฌธ์ ๊ฐ ์๋ ๋ถ๋ถ์ด ์๋๊ฐ ์๊ฐ๋
๋๊ตฐ์.
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
์ฐ์ , C++ ๊ณผ C ๋ (์๋ก ์ํฅ ์ฃผ๊ณ ์์ง๋ง) ๋ณ๊ฐ์ ํ์ค์ ๊ฐ์ง๊ณ ์๋ ๋ค
๋ฅธ ์ธ์ด์
๋๋ค. C++ ์ฑ
์์ Bjarne ์ด constant pointer ๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉ
ํ ๊ฒ๊ณผ C ํ์ค์์ constant pointer ๋ผ๋ ์ฉ์ด๊ฐ ์๋ ์ฌ์ค๊ณผ๋ ๋ฌด๊ดํฉ๋
๋ค. (์ฐธ๊ณ ๋ก ๋ฐฉ๊ธ ์ฐพ์๋ณด๋ C++ ํ์ค์์๋ constant pointer ๋ผ๋ ์ฉ์ด๋ฅผ
๊ณต์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด๊ณณ์ C ๊ทธ๋ฃน์ด๋ฏ๋ก ์ด์ ๋ํ ์ค๋ช
์ ์
๋ตํ๊ฒ ์ต๋๋ค)
๋์ฑ์ด C ์ ์ฐฝ์์์ธ Dennis Ritchie ๊ฐ K&R2 ์์ constant pointer ๋ผ๋
์ฉ์ด๋ฅผ ์ฌ์ฉํ ๊ฒ๊ณผ (๋ฌผ๋ก ์ฌ์ฉํ์ง ์์์ต๋๋ค๋ง) C ํ์ค์ ๊ทธ๋ฌํ ์ฉ์ด๊ฐ
์๋ ์ฌ์ค๊ณผ๋ ๋ฌด๊ดํฉ๋๋ค. C ํ์ค์ ๋ํด์ ์ด์ผ๊ธฐํ๊ณ ์๋ ๊ฒ์ด๋ผ๋ฉด C
๋ฅผ ์ค๋ช
ํ๊ณ ์๋ ์ ๋ช
์ธ์ฌ์ ์ ์๋ ์๋ฌด๋ฐ ํ์ ๊ฐ์ง ๋ชปํฉ๋๋ค (๊ทธ๋ฌํ
๊ธฐ์ ๋ด์ฉ์ด ์ค์ ํ์ค์ text ๋ก ์ถ๊ฐ๋์ง ์๋ ์ด์). ๋จ์ง C ํ์ค๊ณผ ๊ทธ๊ฒ
์ด ์ฐธ์กฐํ๋ ISO ์์ค์ ํ์ค๋ง์ด ํ์ค์ผ๋ก์ ๊ฐ์ ๋ ฅ์ ๊ฐ์ง ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฉ์ด๋ C ํ์ค์ ๋์ค์ง ์์ต๋๋ค.
์ด๋ C ํ์ค์ ๋ํ ์คํด ๋๋ฌธ์ ๋น๋กฏ๋ ๋ฏ ํฉ๋๋ค. C ํ์ค์ ํฌ๊ฒ ๋ ๋ถ๋ถ
์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ ๊ฐ ๋ค๋ฅธ ๊ธ์์ ์ธ๊ธํ๋ฏ์ด, ํ์ค์ผ๋ก์์ ๊ฐ์
์ฑ์ ๊ฐ๋ Normative part ์, ๊ทธ๋ ์ง ์์ Informative part ์
๋๋ค.
"constant pointer" ๋ผ๋ ์ฉ์ด๋ C99 ํ์ค (final standard) ์ ์ด 3๋ฒ ๋
์ต๋๋ค. ๊ทธ 3๋ฒ์ ๋ชจ๋ Informative part ์
๋๋ค. ๋ฐ๋ผ์, "C ํ์ค์์
constant pointer ๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ค" ๋ผ๋ ํํ์ ์๋ฐํ ์๋ฏธ์์ ํ
๋ฆฐ ํํ์
๋๋ค.
์ค์ฌ, "constant pointer" ๋ผ๋ ์ฉ์ด๊ฐ Normative part ์ ์ฌ์ฉ๋์๋ค๊ณ ํ
๋๋ผ๋, ๊ทธ 3๊ตฐ๋ฐ์์ ์ฌ์ฉ๋ ์ฉ์ด๋ const ๋ก ํ์ ๋ pointer ๋ฅผ ์ด์ผ๊ธฐํ
๊ณ ์๋ ๊ฒ์ด์ง, ๋ฐฐ์ด์ ์ค๋ช
ํ๊ณ ์๋ ๋ถ๋ถ์ด ์๋๋๋ค.
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
ํ์ค์์ ์ฌ์ฉํ๊ณ ์๋ ์ฉ์ด๋ ์๋๋๋ค. ๋ค๋ง PL์ ์ด์ผ๊ธฐ ํ ๋ ๋๋ฌด๋๋ ์์ฃผ ์ฌ์ฉ๋๋ ์ฉ์ด๊ธฐ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฆฌ๋ผ๊ณ ํ๋จํ์์ต๋๋ค. ์ ๊ฐ ํ์ค(ISO C)์ด๋ผ๋ ๋จ์๋ฅผ ๋ถ์ด์ง๋ ์์๋ ๊ฑธ๋ก ๊ธฐ์ตํฉ๋๋ค๋ง, ๊ธ ์กฐ๊ฐ ํ๋ํ๋๋ง๋ค ํ์ค์ฉ์ด ์๋์ด๋ผ๋ ํ์์ ๋ฌ ์๋ ์๋ ๋ ธ๋ฆ์ด๊ณ ..
[..]
>>modifiable lvalue์ constant pointer๋ผ๋ ๊ฒ์ ์๋ฏธ์ ์ธ ์ฐจ์ด
๋ง์ ์ค๋ช ์ ํด ์ฃผ์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ฐ ์์ธํ๊ฒ ์ดํด๋ ๊ฐ์ง ์๋๊ตฐ์.
๋ถ๊ฐ์ ์ธ ์ ๋ณด์ ๊ณต์ ํ๊ธฐ ์ํด C9X์ ์ผ๋ถ๋ฅผ ์ธ์ฉํฉ๋๋ค.
-A modifiable lvalue is an lvalue that does not
have array type, does not have an incomplete type, does not
have a const-qualified type, and if it is a structure or
union, does not have any member (including, recursively, any
member or element of all contained aggregates or unions)
with a const-qualified type.
>...storage unit ๋ผ๋ ์ฉ์ด๋ ๊ตฌ์กฐ์ฒด/๊ณต์ฉ์ฒด์์ ๋นํธํ
>๋๊ฐ ์กด์ฌํ๋ addressable storage unit ๋ก ์ฌ์ฉ๋๋ ์ฉ์ด์
๋๋ค. ๋ง์ฝ ํ
>์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ธฐ์ ํ๊ณ ์๋ค๊ณ ์๋ถํ๋ ์ฑ
์์ byte ๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ๋ก
>storage unit ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์กฐ๊ธ ๋ฌธ์ ๊ฐ ์๋ ๋ถ๋ถ์ด ์๋๊ฐ...
H&S4 162page. ๋ฌธ์ ๊ฐ ์๊ตฐ์.
6.7.5.1 Pointer declarators [#3]์ ๋ณด์๋ฉด
int *const constant_ptr; ์ constant pointer์ด๋ผ ์ง์นญํ๊ณ ์์ต๋๋ค.
๋ ํ ๋ง ์์ผ์๊ฒ ์ฃ ?
์, ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ ๊ฐ๋
์์๋ ํ์คํฉ๋๋ค. ์ด๊ฑฐ ์ ์ง์ ์ผ๋ก
์ธํด ๋ ์ํ์ง ์๋ ์ํฉ์ด ์ ๊ฐ๋ ๊น ๊ฑฑ์ ๋๋๊ตฐ์. ์ ๊ฐ ๋ต๋ณ๋๋ฆฐ ๋ฐ๋
rvalue ๊ฐ ํ์ค์ ์๋ ์ฉ์ด์ด๋ฏ๋ก ์ฌ์ฉํ์ง ๋ง๋ผ๋ ๋ป์ด ์ ๋๋ก ์๋๋๋ค.
๋ค๋ง, "(storage space : r-value)" ๋ผ๋ ํํ์ด ๋ง์น storage space ์
r-value ๋ฅผ ๋์ผ์ํ๋ ํํ์ผ๋ก ์ดํด๋ ์ ์์์ ๋ง์๋๋ฆฐ ๊ฒ ๋ฟ์
๋๋ค.
์คํด ๋ง์์ฃผ์
จ์ผ๋ฉด ํฉ๋๋ค.
>์ ๊ฐ ํ์ค (ISO C)์ด๋ผ๋ ๋จ์๋ฅผ ๋ถ์ด์ง๋ ์์๋ ๊ฑธ๋ก ๊ธฐ์ตํฉ๋๋ค๋ง,
์, ์ฌ์ค์
๋๋ค. ์คํด๋ฅผ ์ค์ด๊ธฐ ์ํด ๊ฐ๋ฅํ ํ์ค์์ ๋ช
ํํ ์ ์๋ฅผ ์ ๊ณต
ํ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ข๊ฒ ์ง๋ง, ์์์ ๋ง์๋๋ ธ๋ฏ์ด ์ ๋ ํ์ค์ ์๋ ์ฉ
์ด๋ฅผ ์ฌ์ฉํ๋ค๋ ์ฌ์ค๋ง์ผ๋ก ์ฌ๋ฐ๋ฅด์ง ์๋ค๊ณ ๋ง์๋๋ฆฌ๋ ๊ฒ์ด ์๋๋๋ค.
๋๊ณผ ์ ์ ๊ฐ๋
์์ฒด๋ ๋์ผํ๋ฐ ํํ์์ ์คํด๊ฐ ์์๋ ๊ฒ์ด๋ผ ์๊ฐ๋๋
๊ตฐ์. "object ์ lvalue ๋ฅผ ํตํด rvalue (ํน์ value) ๋ฅผ ์ ์ฅํ๋ค" ๋ผ๋
์์ผ๋ก ํํํด ์ฃผ์
จ์ผ๋ฉด ์คํด๊ฐ ๋ฐ์ํ์ง ์์์ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค.
>๊ธ ์กฐ๊ฐ ํ๋ํ๋๋ง๋ค ํ์ค์ฉ์ด ์๋์ด๋ผ๋ ํ์์ ๋ฌ ์๋ ์๋ ๋ ธ๋ฆ์ด๊ณ ..
๋ฌผ๋ก ๊ทธ๋ฌ์ค ํ์ ์์ต๋๋ค.
>
>[..]
>>>modifiable lvalue์ constant pointer๋ผ๋ ๊ฒ์ ์๋ฏธ์ ์ธ ์ฐจ์ด
>
>๋ง์ ์ค๋ช
์ ํด ์ฃผ์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ฐ ์์ธํ๊ฒ ์ดํด๋ ๊ฐ์ง ์๋๊ตฐ์.
์, ์ดํด๊ฐ ์ด๋ ค์ด ๋ถ๋ถ์
๋๋ค. ์ํ๊น์ด ์ ์ ๊ทธ ๋ถ๋ถ์ด ์ค๋ช
๋ ์ด๋ ค์ด ๋ถ
๋ถ์
๋๋ค. ์์ํ์์๋ ์ด ๋ถ๋ถ์ ์ดํด๋ฅผ ์ํด ๋ง์ ๋
ธ๋ ฅ์ ๊ธฐ์ธ์ธ ๊ฒ์ผ๋ก
์๊ณ ์์ต๋๋ค. ๋ฏธ๋ฌํ ๋ถ๋ถ์ด์ง๋ง, ์ค๋ช
์ ์ด์ฌํ ํด๋ณด๊ฒ ์ต๋๋ค.
>
>๋ถ๊ฐ์ ์ธ ์ ๋ณด์ ๊ณต์ ํ๊ธฐ ์ํด C9X์ ์ผ๋ถ๋ฅผ ์ธ์ฉํฉ๋๋ค.
>
>-A modifiable lvalue is an lvalue that does not
>have array type, does not have an incomplete type, does not
>have a const-qualified type, and if it is a structure or
>union, does not have any member (including, recursively, any
>member or element of all contained aggregates or unions)
>with a const-qualified type.
>
์ด ๋ฌธ์ ์ ํด๊ฒฐ์ ์ํด์๋ modifiable lvalue ๊ฐ ์๋๋ผ lvalue ์ ์ ์๊ฐ
ํ์ํฉ๋๋ค. ๋ค๋ฅธ ๊ธ์์๋ ๋ง์๋๋ ธ๋ฏ์ด lvalue ์ ์ ์๋ C90 ๊ณผ C99
(final standard)/C9X (N869, draft) ๊ฐ ์๋ก ๋ค๋ฆ
๋๋ค. (์ด ๋ถ๋ถ์์๋ ์ฐจ
์ด๊ฐ ์์ง๋ง, C9X ๋ C99 ์ "๋ง์ ์ ํจํ(!)" ์ฐจ์ด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ
๋ผ์ C9X ๋ฅผ ๊ทผ๊ฑฐ๋ก ์ฌ์ฉํ์ค ๋๋ final standard (C99) ๊ฐ ์๋์ ๋ฐํ์ฃผ
์
์ผ ์คํด๋ฅผ ์ค์ผ ์ ์์ต๋๋ค - ์ ๊ฐ csc ์์ ๊ทธ๋ ๊ฒ ํ์ง ์์๋ค๊ฐ ์ข
๊ณ ์์ ํ์์ต๋๋ค ^^;)
์๋๋ C99 ์์์ lvalue ์ ์ ์์ ๋๋ค. (C9X ์์๋ ๋์ผ)
An lvalue is an expression with an object type or an incomplete type
other than void; [...]
ํด์ (๋ฒ์ญ์ด ์๋๋ผ) ์ ํด๋๋ฆฌ์๋ฉด, ์ผ๋จ ํ์ค์์ object ์ object
type ์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ ์ํ์
์ผ ํฉ๋๋ค (๋ง์ฅ๋ ๊ฐ์ง๋ง, ํ์ค์์๋ ๋ถ
์ ๊ด์ฌ a(n) ๋, ์ ๊ด์ฌ the ๋์ ๋ฐ๋ผ ํด์์ด ๋ฌ๋ผ์ง ์ ์๋ ๋ถ๋ถ๋ ์์ต
๋๋ค - ์์ด ๋ฌธํ๊ถ์ด ์๋ ์ฌ๋๋ค์๊ฒ๋ ๋งค์ฐ ์ง์ฆ์ค๋ฌ์ด ๋ถ๋ถ์ด์ฃ , ์ ๊ฐ
ํ์ค ๊ณต๋ถํ๋ ๋ฐ๋์ ์ฑ๊ฒฉ์ด ๋๋ฌ์์ง ๊ฒ ๊ฐ์ต๋๋ค ^^). complete array
type ์ object type ์ด๋ฉฐ, incomplete array type ์ incomplete type ์
๋๋ค. ๋ฐ๋ผ์, ๋ชจ๋ array ๋ lvalue ์
๋๋ค (array of void ๋ ์ ์ธ ์์ฒด
์์ ๋ฐฐ์ ๋ฉ๋๋ค).
๊ทธ๋ฆฌ๊ณ , array type ์ ๋์ด ์ธ์ฉํด ์ฃผ์ ๋ถ๋ถ์ ์ํด, modifiable lvalue
์์๋ ๋ฐฐ์ ๋ฉ๋๋ค. (complete ๋ ์๋๋ array type ์ ์ ์์์ ๋ฐฐ์ ํ๊ณ
์์ง์) ๊ทธ๋ฆฌ๊ณ assignment operator ์ constraints ์์ ๋ณด์ค ์ ์๋ฏ์ด
์ข๋ณ ํผ์ฐ์ฐ์๋ก๋ modifiable lvalue ๊ฐ ์์ผ ํฉ๋๋ค. ๋ฐ๋ผ์, modifiable
lvalue ๊ฐ ์๋ array type ์์์ ์ข๋ณ์ ์ฌ ์๊ฐ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก ์๋๋ C90 ์์์ lvalue ์ ์ ์์ ๋๋ค.
An lvalue is an expression (with an object type or an incomplete type
other than void) that designates an object: [...]
์ด ๋ถ๋ถ์ด ๋ฐ๋๊ฒ ๋ ๋งํ ์์ฃผ ๋ฏธ๋ฌํ ๋ฌธ์ ๋ช๊ฐ์ง๋ฅผ ์ ์ธํ๊ณ ๋ lvalue ์
์์ ์๋ ์์ฒด๋ C90 ๊ณผ C99 ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. (๊ทธ๋ฌํ ๋ฏธ๋ฌํ ๋ฌธ์ ๋ค
์ ์ ๊ฐ ๋ฆฌ๋ทฐํ๊ณ ์๋ ์ฑ
์ธ C99 Analysis ์ ๋ฃ์ ์์ ์
๋๋ค - ์๊ตญ๋ถ์
์ํด ์ฐ์ฌ์ง๊ณ ์๋ ์ด ์ฑ
์ C99 ํ์ค์ ํ๋ฌธ์ฅ ํ๋ฌธ์ฅ์ ๋ชจ๋ ์ฃผ์์ ๋ฌ์
๋์ ๋
ธ๊ฐ๋ค์ฑ ์ฑ
์
๋๋ค --; ์ ์์์ ์ฑ
์ ์ด 1000 ์ชฝ ์ ๋๊ฐ ๋์ง ์์
๊น ์๊ฐ๋๋๊ตฐ์)
์ด๋ ๊ฒ array type ์ lvalue ๋ก ์ ์ํจ์ผ๋ก์จ lvalue ๋ฅผ ํผ์ฐ์ฐ์๋ก ์๊ตฌ
ํ ์ ์๋ ๋ง์ ๋ถ๋ถ์ array type ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฌธ์ ์์ด ์ ๊ณตํ ์ ์
์ต๋๋ค. ๋ฐ๋ณตํด์ ๋ง์๋๋ฆฌ์ง๋ง, ์ด๋ ํ์ค์ ํด์๋ฌธ์ ์
๋๋ค. ๋ฐฐ์ด์ ํฌ์ธ
ํฐ ์์๋ก ์ดํดํ๋, lvalue ๋ก ์ดํดํ๋ ์ฌ๋ฐ๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ต๊ด์ ์ตํ๊ณ
๊ณ์๋ค๋ฉด ์ค์ ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์์ ์ด ๋์ ๊ฐ๋
์ ์ถฉ๋์ ๋ง๋ ๊ฐ๋ฅ์ฑ์
๊ฑฐ์ ์์ต๋๋ค. ๋ค๋ง C ์ system ์์ฒด์ ๋ํ ์ดํด์์๋ ๋ถ๋ช
๋ง์ ์ฐจ์ด
๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋ฉ๋๋ค. ์ด๋ ํ ํด์๋ค์ ํตํด์ ๊ทธ๋ฌํ ํ๋์ด ๊ฐ๋ฅํ๊ฐ๋ฅผ ์
๋ ๊ฒ๊ณผ, ๊ทธ๋ฅ ๊ทธ๋ ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด์์๊ณ ์ฌ์ฉํ๋ ๋ฌธ์ ๊ฐ ์์ด์ ์ฐ
๋ ๊ฒ๊ณผ๋ ์ฐจ์ด๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ (๊ทน๋จ์ ์ธ?) ์๋ฅผ ๋ค๋ฉด, ํ PC
ํต์ ๊ฒ์ํ์์ ์์๋ ๋
ผ์์ค์, ๋ฐฐ์ด๋ช
์ด ํฌ์ธํฐ ์์๋ผ๊ณ ์๊ฐํ๋ ๋ถ
์ ๋ต๋ณ์ ์๋์ ๊ฐ์์ต๋๋ค. ์ด๋ฌํ ๋ฐฐ์ด์ ๋ํ ์คํด๊ฐ ์๋์ ๊ฐ์ ์
๋ชป๋ ํ๋ก๊ทธ๋๋ฐ ํ๋์ผ๋ก ๋ํ๋ ์๋ ์์ต๋๋ค.
"char buffer[255]; ์์ buffer๋ 'ํฌ์ธํฐ ์์' ์
๋๋ค.
์์์๋ค๊ฐ &๋ฅผ ๋ถ์ฌ๋ด์ผ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
๊ทธ๋์ scanf()์์ buffer๋ &buffer๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒ์ด์ฃ .."
& ์ฐ์ฐ์๋ ํผ์ฐ์ฐ์๋ก lvalue ๋ฅผ ์๊ตฌํ๊ณ ์๊ณ , ํผ์ฐ์ฐ์๋ก lvalue ๊ฐ ์ฃผ
์ด์ก์ ๋์ ์ ์๋ ํ๋์ ์ํด ์์๋ด์์ &buffer ๋ buffer ์ ์์ ํ
๋ค๋ฅธ type ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
>>...storage unit ๋ผ๋ ์ฉ์ด๋ ๊ตฌ์กฐ์ฒด/๊ณต์ฉ์ฒด์์ ๋นํธํ
>>๋๊ฐ ์กด์ฌํ๋ addressable storage unit ๋ก ์ฌ์ฉ๋๋ ์ฉ์ด์
๋๋ค. ๋ง์ฝ ํ
>>์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ธฐ์ ํ๊ณ ์๋ค๊ณ ์๋ถํ๋ ์ฑ
์์ byte ๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ๋ก
>>storage unit ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์กฐ๊ธ ๋ฌธ์ ๊ฐ ์๋ ๋ถ๋ถ์ด ์๋๊ฐ...
>
>H&S4 162page. ๋ฌธ์ ๊ฐ ์๊ตฐ์.
>
H&S4 ๋ ํ์ค์ ์ ์ฒด์ ์ผ๋ก ์ ๋ค๋ฃจ๊ณ ์๋ ์ฑ
์ด์ง๋ง, ๋ง์ ๋ถ๋ถ์ ์ฌ์ํ
๋ฌธ์ ์ ๋ค์ด ์์ต๋๋ค. ํนํ๋ conversion ์ ๋ค๋ฃจ๋ ๋ถ๋ถ์ ๋ค๋ฅธ ์ฑ
์์ ์ฐพ
์๋ณด๊ธฐ ํ๋ unary conversion, binary conversion ๊ฐ์ ๋ค์ ๋ค๋ฅธ ๊ฐ๋
์
๋์
ํด ์ค๋ช
ํ๊ณ ์์ต๋๋ค. ์ด๋ ๊ณ์ํด์ C ๋ฅผ ๊น์ด ๊ณต๋ถํด ๋๊ฐ ๋ ์ ์ฌ
์ ์ผ๋ก ์ฌ์ํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์์ ์ ์๋ ๋ถ๋ถ์
๋๋ค. ์ฌ์ค, C ๋ฅผ ๊ธฐ์ ํจ
์ ์์ด์ ์ ํ์ฑ์ K&R2 RM ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค.
C ํ์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ์ํ์ฌ ์ฑ
์ ์ด๋ค๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ์ผ์
๋๋ค. C90
ํ์คํ ์์
์์ ์ฃผ์ ์ง์ฑ
์ ๋งก์๋ P.J.Plauger ๋ผ๋ ์ ๋ช
ํ ๋ถ์ด ์ด ์ฑ
๋ ํ ํ์ด์ง ๊ฑธ๋ฌ ํ๋์ฉ ํ๋ฆฐ ๋ถ๋ถ์ ๋ง๋ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๊ณ ๊ทธ๋ฌํ
๋ชจ๋ ์ฑ
์ ๊ฐ์น๋ฅผ ๋ฌดํจํ๋ค๊ณ ๋ง์๋๋ฆฌ๋ ๊ฒ์ ์๋๋๋ค. ๋ค๋ง, ๊ทธ๋ฌํ ์ฑ
์์ ๊ธฐ์ ์ ์ธ ๋ด์ฉ์ด ์ธ์ฉ๋ ๋๋ (ํ์ค์ ๋ฐ์ํ๋ค๋) ์ฑ
์ ๊ธฐ์ ๋ง์ ๋ฏฟ
๊ณ ํ์ค์ด๋ผ๋ ๊ทผ๊ฑฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์คํด๋ฅผ ์ผ์ผํฌ ์ ์๋ค๋ ๋ง์์ ๋๋ฆฌ
๊ณ ์ถ์ ๊ฒ์
๋๋ค. P.J.Plauger ๋ผ๋ ๋ถ์ ์ฑ
์ ๋ค์๊ณผ ๊ฐ์ ๋ง์ด ์์ต๋๋ค.
(๋ฌผ๋ก , ์๋๋ ์์ด๋ก ์จ ์์ง๋ง, ์๊ฐ ๊ด๊ณ์ ์ ๊ธฐ์ต์ ์ฌ๊ตฌ์ฑํด ํ๊ธ๋ก
์ ์ด๋๋ฆฝ๋๋ค)
"C ํ์ค๊ณผ ๋ด ์ฑ ์ ๋ด์ฉ์ด ์ถฉ๋ํ๋ฉด, ํ์ค์ ๋ฏฟ์ด๋ผ. ๋๋ ํ๋ฆด ์ ์๋ค."
์ด์ nit-picky (csc ์ ์ด๋ค ๋ถ๊ป ์ป์ ๋ณ๋ช ์ ๋๋ค --;) ์ ์ ์ด์์ต๋๋ค.
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
๋ค๋ฅธ ๊ธ์์ ๋ง์๋๋ ธ๋ฏ์ด, draft (์๋ง๋ ๋ง์ด ๋ฐฐํฌ๋ N869 ๋ฅผ ๊ฐ์ง๊ณ ๊ณ
์๋ฆฌ๋ผ ๋ฏฟ์ต๋๋ค) ์ C99 (final standard) ๋ ๋ง์ ์ ํจํ ์ฐจ์ด๋ฅผ ๊ฐ์ง๊ณ
์์ต๋๋ค. N869 ๋ฅผ ์ต์ข
ํ์ค๊ณผ ๋์ผ์ ํด์๋ C ์ ๋ง์ ๋ถ๋ถ์ ๋ํด ์คํด
๋ฅผ ํ์ค ์ ์์ต๋๋ค.
>6.7.5.1 Pointer declarators [#3]์ ๋ณด์๋ฉด
>int *const constant_ptr; ์ constant pointer์ด๋ผ ์ง์นญํ๊ณ ์์ต๋๋ค.
>
>๋ ํ ๋ง ์์ผ์๊ฒ ์ฃ ?
C99 ์์ p.155 ์ 6.7.5.1#3 ์ ์์ ํ ์ธ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
(์๋ง๋ C9X ์ C99 ๋ page ๋ฒํธ๊ฐ ๋ค๋ฅผ ๊ฒ๋๋ค)
EXAMPLE
The following pair of declarations demonstrates the difference between
a "variable pointer to a constant value" and a "constant pointer to a
variable value".
const int *ptr_to_constant;
int *const constant_ptr;
The contents of any object pointed to by ptr_to_constant shall not be
modified through that pointer, [...]
์ผ๋จ, ๋๋ฆฌ๊ณ ์ถ์ ๋ง์์ ์ด ๋ถ๋ถ์ const ๋ก ํ์ ๋ pointer type ์ ๋
ํ ์ค๋ช
์์ ๋์จ "constant pointer" ๋ผ๋ ์ฉ์ด๋ผ๋ ์ ์
๋๋ค. ๋ฐ๋ผ์, ์
๊ฐ ์ด์ผ๊ธฐํ๊ณ ์๋ ๋ฐฐ์ด์ "constant pointer" ํน์ "ํฌ์ธํฐ ์์" ๋ผ๊ณ
์ค๋ช
ํ๋ ๊ฒ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ "EXAMPLE" ์ด๋ผ๊ณ ๋ช
์๋์ด ์๋ ๊ฒ์ ๋ณด์ค ์ ์์ ๊ฒ๋๋ค. ์์์
์ค๋ช
๋๋ ธ๋ฏ์ด Example ์ C ํ์ค์ informative part ์
๋๋ค. ๋ฐ๋ผ์ ํ์ค
์ normative text ๊ฐ ์๋๋๋ค.
์ด ์ธ์๋ C99 ์๋ (์๋ฅผ ํฌํจํด) ์ด 3๋ฒ์ constant pointer ๋ผ๋ ์ฉ์ด๊ฐ
๋์ต๋๋ค. ๋ชจ๋ "const ๋ก ํ์ ๋ pointer type ์ ์ค๋ช
"ํ๋ "informative
part" ์
๋๋ค.
Example ์ด๋ Footnote ๋ฑ์ด informative part ๋ผ๋ ์ฌ์ค์ (๊ฑด๋๋ฐ๊ธฐ ์ฌ์ด
๋ถ๋ถ์ด์ง๋ง) C ํ์ค์์๋ ๋ช
ํํ ๋ฐํ๊ณ ์์ผ๋ฉฐ, ISO ํ์ค์ ์์์ ํด๋น
ํ๋ ISO/IEC Directive - part 3 (์ฐธ๊ณ ๋ก, ์ฌํด 7์์ ๊ฐ์ ๋์ด part 2 ์
ํด๋นํ๋ ๋ถ๋ถ์
๋๋ค) ์ ์ํด์๋ ๋ช
์๋๊ณ ์๋ ๋ฐ์
๋๋ค.
์คํด๊ฐ ํ๋ ธ์ผ๋ฆฌ๋ผ ์๊ฐํฉ๋๋ค.
ํ์ค์ด ์ข
๊ต ๊ฒฝ์ ์ฒ๋ผ ์ฐ์ฌ์ง ๊ฒ์ ์๋์ง๋ง, ํด์ ์์ฒด๋ ์ข
๊ต ๊ฒฝ์ ์์ค
์ ํด๋นํ ์ ๋๋ก ์ด๋ ต์ต๋๋ค. ํ์ค์ด ํํ ๋ฆฌ์ผ๋ก์ ์ฐ์ฌ์ง ๊ฒ์ ์๋์ง๋ง
์ด ๋ถ๋ถ์ ์ฐธ ์ํ๊น์ด ๋ถ๋ถ์
๋๋ค. ๋๋ฌด ๋ง์ ํ๊ธฐ ์ด๋ ค์ด ๋น๋ฐ์ ๋ด๊ณ ์
๋ ์
์ด์ง์.
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
๊ฒฐ๋ก ์ constant pointer๋ผ๋ ์ฉ์ด๋ ๊ณต์์ ์ผ๋ก C์ ์กด์ฌํ๋
์ฉ์ด ์
๋๋ค.
๊ธฐ์ฐ๊ตฐ์.
modifiable lvalue์ ๋ํด์ ๊น์ด์๋ ์ค๋ช ์ ์ฝ์์ต๋๋ค.
C9X ์ธ์ฉ
6.5.2.1 Array subscripting
[..]
Semantics
[..]
The definition of the subscript operator [] is that E1[E2] is identical to
(*((E1)+(E2))). Because of the conversion rules that apply to the binary +
operator, if E1 is an array object (equivalently, a pointer to the initial
element of an array object) and E2 is an integer, E1[E2] designates the E2-th
element of E1 (counting from zero).
[..]
When used in the expression x[i][j], that array is in turn converted to a
pointer to the first of the ints, so x[i][j] yields an int.
์ฒ์ ์ ์ ๋ต๋ณ์ผ๋ก ๋์๊ฐ
>๋ฐฐ์ด์ expression์ ์ฌ์ฉ์ด ๋ ๊ฒฝ์ฐ constant pointer๋ก conversion์ด ๋ฉ๋๋ค(sizeof๋ ์ ์ธ).
๋ ์๋ชป๋ *์ค๋ช
*์
๋๊น(constant pointer๊ฐ ๋ฐฐ์ด์ด๋ผ๊ณ ํ์ง ์์์์ ์ ์ํด ์ฃผ์๊ธฐ
๋ฐ๋๋๋ค.)?
[..]
"char buffer[255]; ์์ buffer๋ 'ํฌ์ธํฐ ์์' ์
๋๋ค.
์์ ์๋ก ๋์ ๊ฒ๊ณผ๋ ๋ถ๋ช ํ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
>๋ฐฐ์ด์ expression์ ์ฌ์ฉ์ด ๋ ๊ฒฝ์ฐ pointer๋ก conversion์ด ๋ฉ๋๋ค(sizeof๋ ์ ์ธ).
๋ ์ด๋ค๊ฐ์?
๋ง์ง๋ง์ผ๋ก ํ ๊ฐ์ง๋ง ๋, ์ ํ์ค๋ฌธ์์์ constant๋ผ๋ ํ์ ์๋ฅผ pointer์์
๋ถ์ด์ง ์์ ๊ฒ์ ๋ฌด์จ ์ด์ ์์ ๊ฐ์?
ํ ... ์ด๋ ๊ฒ ์ฌ์ํ ๋ฌธ์ ๋ก ๊ดํ ๋ ์๋ก ๊ฐ์ ์ํด๊ฐ๋ฉฐ ๋
ผ์๊ฐ ๊ธธ์ด์ง๊ธฐ
๋ ์ซ์ต๋๋ค. ํ์ง๋ง, ์ ๊ฐ ๋๋ผ๊ธฐ์ ๋์ ์ง๊ธ ๋ค์ ์ต์ง๋ฅผ ๋ถ๋ฆฌ๊ณ ๊ณ์ญ๋
๋ค. ์ผ๋จ ๋์ ์ฃผ์ฅ์ด ์์ ํ ํ๋ฆฐ ๊ฒ์ ์๋๋๋ค. C ํ์ค์ machine-
readable form ์ผ๋ก ๋ง๋ค์ด ๋๊ณ (์ค์ ๋ก ๊ทธ๋ฌํ ํํ๋ก ํ๋งค๋๊ณ ์์ง๋ง),
"constant pointer" ์ ๊ฒ์ํ๋ฉด, 3๊ฑด์ ์ฐพ์ ์ ์์ต๋๋ค. ๊ทธ ๋ง์์ ๋ง๋
๋ง์์
๋๋ค.
ํ์ง๋ง, ๋์ ํ์ค์ ์ฝ๊ณ ๋ ๊ณ์์ง๋ง, ์ดํดํ๊ณ ๊ณ์์ง๋ ๋ชปํฉ๋๋ค. ์๋ฅผ
๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. "C ํ์ค์ rvalue ๋ฅผ ์ ์ํ๊ณ ์์ต๋๊น" ๋ผ๋ ์ง๋ฌธ์ ์ด
๋ป์ต๋๊น? rvalue ๋ผ๋ ์ฉ์ด๋ C ํ์ค์ footnote ์์ ์ค๋ช
๋๊ณ ์์ต๋๋ค.
ํ์ง๋ง, ๊ทธ footnote ๋ ํ์ค์ normative part ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์์ ์ง
๋ฌธ์ ๋ํ ๋๋ต์ "No" ์
๋๋ค.
๊ทน๋จ์ ์ผ๋ก ์ค๋ช
๋๋ฆฌ๋ฉด ์ด๋ ์ต๋๋ค. ์ ๊ฐ ๋ง์ฝ C ํ์ค์์ ๊ฐ์ ๋ ฅ์ ๊ฐ์ง
๋ชปํ๋ informative part ๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ ๋ค์์ ๊ทธ๊ฒ์ด "C ํ์ค" ์ด๋ผ๋ฉฐ
๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋ฐฐํฌํ๊ฑฐ๋ (๋ฌผ๋ก , ์ ์๊ถ ๋ฌธ์ ๋ฅผ ๋ฌด์ํ๋ค๋ฉด) ํ๋ค๋ฉด ์ด
๋ป์ต๋๊น? (์ค์ ๋ก ์ผ๋ถ ๊ตญ๊ฐ์ National Body ๋ ๊ทธ๋ ๊ฒ ํ์์ต๋๋ค) ์
ํ๋์ C ํ์ค์ ๋ด์ฉ์ ๋ํ ํด์์ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ์ด๊ธฐ์ ISO ์์
๋ณด์์ ๋ ์๋ชป๋ ํ๋์ผ๊น์? ์ ๊ฐ ๋ง์ฝ ๊ทธ๋ ๊ฒ ํ๋ค๋ฉด ์ด ๋ฌธ์ ์ ์จ์์ด
๋๋ "constant pointer" ๋ผ๋ ์ฉ์ด๋ ๊ทธ ๋ฌธ์์ ํฌํจ๋์ง ์์ต๋๋ค. ์ ๊ฐ
๊ทธ๋ ๊ฒ ์๋ผ๋ธ ๋ฌธ์๋ ISO ์ ์ํด ๊ตญ์ ํ์ค์ผ๋ก์์ ๊ฐ์ ๋ ฅ์ ๊ทธ๋๋ก ๊ฐ
๋ "ํ์ค" ์
๋๋ค.
์ฐ๋ฆฌ๊ฐ "C ํ์ค" ์ด๋ผ๊ณ ์ด์ผ๊ธฐํ๋ค๋ฉด ์ด๋ ํ์ค์ normative text ๋ฅผ ๊ฐ๋ฅด
ํค๋ ๊ฒ์
๋๋ค(!).
C ํ์ค์ Example ์ด๋ Footnote ์ ํ๋ฆฐ ๋ด์ฉ์ด ๋์ ์๋ค ํ๋๋ผ๋ "C ํ
์ค์ด ํ๋ ธ๋ค" ๋ผ๊ณ ๋จ์ธํ ์๋ ์๋ค๋ ๋ป์
๋๋ค. ์ฆ, C ํ์ค ์์ฒด๋ ๊ฐ์
๋ ฅ์ ๊ฐ์ง ์๋ informative part ๋ฅผ ๋ชจ๋ ๋ฌด์ํด๋ ๊ทธ ์์ฒด๋ก์ ํ๋ฆผ์ด ์
๋ ๋ฌด๊ฒฐ์ฑ์ ๊ฐ์ถฐ์ผ ํ๋ ๊ฒ์
๋๋ค. (๋ฌผ๋ก Example ์ด๋ Footnote ๋ ํ์ค
์ actual text ์ ์ผ๊ด๋ ๋ด์ฉ์ ๋ด์์ผ ํฉ๋๋ค - ํ์ค์ Footnote ๊ฐ์
Informative part ์ ์ญํ ์ ๋ํด์ ์ค๋ช
ํ๊ณ ์์ต๋๋ค)
์๋๋ ์ ๊ฐ ์ค๋ ์ ์ ํ์ค์ footnote ๋ฅผ ์ธ์ฉํ๋ฉฐ, ํ์ค์ ํด์์ ์์ฒญ
ํ๋ ์ง๋ฌธ๊ณผ ๊ทธ์ ๋ํด C ํ์คํ ์๊ตญ ํจ๋์ธ Clive Feather ์จ๊ฐ ๋ต๋ณํด
์ฃผ์ ๊ฒ์
๋๋ค (์ด ๋ฌธ์ ๋ ๋ช๋ฌ์ ์ ์ด๋ฏธ ์ดํดํ๋๋ฐ, Clive ์จ๊ฐ ๋ฌด์จ ๋ง
์์์์ธ์ง - ์ฌ์ฌํ์ ๊ฐ? - ์ต๊ทผ์ ๋ต๋ณ์ ํฌ์คํ
ํ์
จ์ต๋๋ค). ์ ๊ถํด์์
์๋์ง๋ง, ํ๋ฆฐ ํด์๋ ์ ๋ ์๋๋๋ค.
[Old post]
In article <zFuV5.7$_n....@news.hananet.net>, Jun Woong
<myco...@hanmail.net> writes
>[1] interchangeability
>
>Footnote 16 of C89 on p.23 (Footnote 28 of C99 on p.36):
>"The same representation and alignment requirements are meant to
> imply interchangeability as arguments to functions, return values
> from functions, and members of unions."
This is not normative, and in general such interchangeability is not
required by the Standard (even though it normally works) except in
specific cases.
์์ ์ธ์ฉ๋ Footnote ์์ ์ด์ผ๊ธฐํ๊ณ ์๋ ๋ฐ๋ ํน์ type ์ด ๊ฐ์ ํํ,
๊ฐ์ ์ ๋ ฌ์ ํ์ ๊ฐ๋ ๊ฒ์ ํจ์์ธ์, ๋ฐํ๊ฐ, ๊ณต์ฉ์ฒด ๋ฉค๋ฒ๋ก์์ ์ํธ ๊ต
ํ์ฑ์ ๋ณด์ฅํ๋๋ก ์๋๋์๋ค๋ ๋ด์ฉ์
๋๋ค. ์ ๊ฐ ๋ฌป๋ ๋ฐ๋,
Can it make something undefined (or implementation-defined)
well-defined, e.g., accessing a member of union other than
the member in which a value is stored? (I surmise NO.)
"๊ทธ๋ฌํ ํ๋์ด ํ์ค์ normative part ์ ์ํด ์ ์๋์ง ์์ ๊ฒ์ด๋ผ ํด๋
์ด footnote ์ ์ํด ์ ์๋ ํ๋์ ๊ฐ๋๋"๋ ๊ฒ์ด์์ต๋๋ค. ์ด์ ๋ํด
Clive Feather ์จ์ ๋ต๋ณ์ "๊ทธ ๋ถ๋ถ์ normative ๊ฐ ์๋๊ธฐ์ ์ผ๋ฐ์ ์ผ๋ก
๊ทธ๋ฌํ ์ํธ๊ตํ์ฑ์ด ํ์ค์ ์ํด ์๊ตฌ๋์ง ์๋๋ค" ๋ ๊ฒ์
๋๋ค (์ค์ ์ ์ธ
์ํฉ์์๋ ๋๊ฐ ์๋ํ๊ฒ ์ง๋ง ๋ง์
๋๋ค). ("specific case" ๋ ํ์ค์
normative part ์์ ์ ์ํ๊ณ ์๋ ๋ช๊ฐ์ง ์์ธ๋ฅผ ๊ฐ๋ฅดํค๋ ๊ฒ์
๋๋ค)
๊ฒฐ๋ก ์ ์ผ๋ก ์ Footnote ๋ ๊ทธ๋ฅ ๋ฌด์ํด๋ ํ์ค์ ์ดํดํ๋๋ฐ ์๋ฌด๋ฐ ์คํด
๊ฐ ์๋ค๋ ๋ป์
๋๋ค. Example ๋ ๋ง์ฐฌ๊ฐ์ง ์
๋๋ค. Example ์์๋
Footnote ๋ณด๋ค ๋ ์์ฃผ ํน์ implementation ์ ๊ฐ์ ํ๊ณ ์ ์ํฉ๋๋ค. ๊ทธ๋ฌ
ํ Example ์ด normative part ๋ผ๋ฉด ๋ฌธ์ ๊ฐ ์ฌ๊ฐํด์ง ์ ์์ต๋๋ค.
>๊ทธ๋ฌ๋ "์๋ฐํ ์๋ฏธ์์ ํ์ค์ ๋์ค์ง ์๋๋ค"๋ ๋ง์๋ํ
>ํ๋ฆฐ๊ฒ์
๋๋ค.
>
๋ฐ๋ผ์ ๊ทธ๋ ์ง ์์ต๋๋ค. "ํ์ค์ ์ด๋ ํ ๋ถ๋ถ์๋ ์ธ๊ธ๋์ง ์๋๋ค" ๋ ํ
๋ฆฐ ๋ง์
๋๋ค. ํ์ง๋ง, "์๋ฐํ ์๋ฏธ์์ ํ์ค์ ๋์ค์ง ์๋๋ค" ๋ผ๋ ํํ
์ ์ณ๋ค๊ณ ๋ด์ผ ํฉ๋๋ค. ์ํ์ ๋ค๋ฉด ์ด ๋ฌธ์ ๋ฅผ comp.std.c ๋ก ์ฎ๊ฒจ ๋๋ฆฌ๊ฒ
์ต๋๋ค.
>๊ฒฐ๋ก ์ constant pointer๋ผ๋ ์ฉ์ด๋ ๊ณต์์ ์ผ๋ก C์ ์กด์ฌํ๋
>์ฉ์ด ์
๋๋ค.
constant pointer ๋ผ๋ ์ฉ์ด๊ฐ C ํ์ค์ informative part ์์ ์ธ๊ธ๋์๋ค
๋ ์ฌ์ค์ ์ธ์ ํ๋ฉฐ, ์ด ๋
ผ์์ ์์๋ถํฐ ์๊ณ ์๋ ๋ฐ์
๋๋ค. ํ์ง๋ง,
constant pointer ๋ผ๋ ์ฉ์ด๊ฐ "๊ณต์์ "์ผ๋ก "C ํ์ค" ์ ์กด์ฌํ๋ ์ฉ์ด๋ผ
๋ ์ฃผ์ฅ์ ์ณ๋ค๊ณ ๋ณด๊ธฐ ํ๋ญ๋๋ค.
์ฌ์ค ํ์ค์ Normative part ์ Informative part ์ ๋ํ ๋
ผ์๋ผ๋ฉด ์ง๊ธ์
๋
ผ์๊ฐ ์ถฉ๋ถํ ๊ฐ์น๊ฐ ์๊ฒ ์ง๋ง, constant pointer ์ ๋ํ ๋
ผ์๋ผ๋ฉด ์ด์ชฝ
์ผ๋ก ๋
ผ์๊ฐ ํ๋ฅผ ์ด์ ๊ฐ ์์ต๋๋ค. ์๋์ ๋ฌธ์ ๋, ๋ฐฐ์ด์ ์ค๋ช
๋ฐฉ๋ฒ์ผ๋ก
์์ constant pointer ์ ๋ํ ๋ด์ฉ์ด๊ณ , ํ์ค์ informative part ์ ์ธ
๊ธ๋๋ constant pointer ๋ ๊ทธ์ ์๋ฌด๋ฐ ๊ด๋ จ์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก,
Does the term "constant pointer" exist in the Standard officially?
(๋์ ์์ ๋ฌธ์ฅ์ ์๋ฌธํ์ผ๋ก ๊ทธ๋๋ก ์ฎ๊ธด ๊ฒ์
๋๋ค)
์ ๋ํ ์ ๋๋ต์,
"No, it occurs only in the informative part."
์
๋๋ค. ๋๋ ์ ๊ฐ ๋ง์๋๋ฆฌ๋ ๋ฐ๋ฅผ, ์ ๋ ๋์ด ๋ง์ํ์๋ ๋ฐ๋ฅผ ์ดํดํ๊ณ
์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ํ์ค์ (informative, normative ๋ฅผ ๋ชจ๋ ํตํ์ด) ๊ทธ๋ฌํ
์ฉ์ด๊ฐ ๋์จ๋ค๋ ์ฌ์ค์๋ ๋์ํฉ๋๋ค. ํ์ง๋ง, ๊ทธ๋ฌํ ์ฉ์ด๋ฅผ ํ์ค์ ๊ฐ์
์ฑ์ ๊ฐ์ง๊ณ ๋ช
์๋๋ค๋ ์ฌ์ค์๋ ๋์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌํ ์๋ฏธ์์
constant pointer ๋ผ๋ ์ฉ์ด๋ ํ์ค์์ ์ค์์ฑ (significance) ์ ๊ฐ์ง ์
์ต๋๋ค.
๊ทธ๋ผ...
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
* ์ด ๊ธ์ ํ์ค์ ๋ํ ๋งค์ฐ ๊ณ ๋ฆฌํ๋ถํ(?) ํด์๊ณผ ๊ฐ์ธ์ ์ธ ๊ฒฌํด๋ฅผ ๋ด๊ณ
์๋ ๊ธ์
๋๋ค. ์๋ ์ ์ค์์ ๋ํด ์ ์ ํ ๋ถ๋ถ์ ์ ์ธํ๊ณ ๋ ํ์ค์
๊ด์ฌ์๊ฑฐ๋ ๋ถ์ ์ ์ธ ๊ฐ์ ์ ๊ฐ์ง๊ณ ๊ณ์ ๋ถ๋ค์ ์ด ๊ธ์ ๋๊น์ง ์ฝ์ง
์์ผ์
๋ ์ข์ต๋๋ค.
์ผ๋จ, ์ ์ค๋ช
์ ์๋ชป๋ ๋ถ๋ถ์ด ์์ด์ ์ ์ ํ๊ณ ์์ํ๊ฒ ์ต๋๋ค.
"์ด๋ฌํ ํด์์ ๋ฐ๋ฅด๋ฉด ๋ฐฐ์ด๋ ๋น์ฐํ lvalue ๊ฐ ๋๋ฉฐ, modifiable lvalue
๋ผ๋ ๊ฐ๋
์ ๋์
ํด, ๋์
์ฐ์ฐ์์ ์ข์ธก์ ์ค๋ ๊ฒ์ ๋ง๋ ๊ฒ์
๋๋ค."
์ด ๋ถ๋ถ์ ํ๋ฆฐ ์ค๋ช
์
๋๋ค. ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ๋ฐฐ์ด๋ช
์ด ๋์
์ฐ์ฐ์์ ์ข์ธก
ํผ์ฐ์ฐ์๋ก ์ฌ ์ ์๋ ์ด์ ๋ "modifiable lvalue ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ด ์๋
๋ผ ์์ lvalue ๊ฐ ์๋๊ธฐ ๋๋ฌธ" ์
๋๋ค. (์ ์ค์๋๋ฌธ์ ๋ค๋ฅธ ๋ถ๋ค์ด ํผ๋
๋ ์๋ ์๋๋ฐ, ์๋์์ ๊ณ์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค - ์ง๊ธ ์์๋ ํ๋ฆฌ๊ณ ์์ต
๋๋ค ^^; - 1๋
์ ์ ๊ณต๋ถํ๋ ๋ถ๋ถ์ด๋ผ ํ์ค์ ์ ๋๋ก ๋ค์ ธ๋ณด์ง ์๊ณ ์ ์
๋ต๋ณ์ด์์ต๋๋ค. ์ง์ฌ์ผ๋ก ์ฌ๊ณผ๋๋ฆฝ๋๋ค)
----------------------------------------------------------------------
์ผ๋จ ๋๊ป์ ์ ์ด์ฃผ์ *์ค๋ช
* ์์ฒด๋ ์๋ชป๋ ์ค๋ช
์ด๋ผ๊ณ ๋ง์๋๋ฆฌ๊ธฐ๋ ์ด๋ ต
์ต๋๋ค. ๋ํ, ๋ฐฐ์ด์ด pointer constant ๋ผ๊ณ ์ค๋ช
ํด๋ ์๋ชป๋ *์ค๋ช
* ์ด๋ผ
๊ณ ๋ง์๋๋ฆฌ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ ๋ค๊ณ ์ ํํ ์ค๋ช
์ด๋ผ๊ณ ๋ง์๋๋ฆฌ๊ธฐ๋ ์
์
์ฅ์์๋ ์ด๋ ต์ต๋๋ค. ๊ฐ๋จํ ๋ง์๋๋ฆฌ๋ฉด pointer constant ์ constant
pointer ์ ์๋ฏธ๊ฐ ๋ช
ํํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก ์ ๊ฐ (๊ฐ์ธ์ ์ผ
๋ก) ๊ทธ๋ฌํ ์ค๋ช
์ ๊ฒฝ๊ณํ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. (์ฌ๊ธฐ์๋ถํฐ๋ ์๋น
ํ ๊ฐ์ธ์ ์ธ ๊ฒฌํด์
๋๋ค)
pointer constant ์ constant pointer ๊ฐ ์๋ฏธํ๋ ๋ฐ๋ ๋ค์ ๋ค๋ฆ
๋๋ค.
ํ๊ตญ๋ง๋ก ๋ฒ์ญ์ ํ์๋ฉด, "ํฌ์ธํฐ ์์" ์ "์์ ํฌ์ธํฐ" ์ ๋๊ฐ ๋๊ฒ ์ง์.
C ๋ฅผ ๋ฐฐ์ฐ๋ ๋ง์ ์ด๋ณด๋ถ๋ค์ ์ด ๋ ์ฌ์ด์ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ์ ๊ตฌ๋ถํ์ง ๋ชป
ํฉ๋๋ค (๋ฐฐ์ด๊ณผ ํฌ์ธํฐ๋ผ๋ ํฐ ์ฃผ์ ์ ์ ๊ฒฝ์ด ๊ณค๋์ ์๊ฒ ์ง์). *์ ํํ
์ ์๋์ด ์์ง ์์ผ๋ฏ๋ก*, ์ ๋๋ฆ๋๋ก ์ผ๋ฐ์ ์ธ ์๋ฏธ๋ฅผ ๋ถ์ฌํ์๋ฉด,
pointer constant ๋ ์์๋ ์์์ธ๋ฐ, ๊ทธ type ์ด pointer ์ธ ๊ฒฝ์ฐ์ผ ๊ฒ๋
๋ค. ์ฆ, ๋ณธ์ง์ ์ผ๋ก๋ lvalue ๊ฐ ์๋ rvalue (value) ๊ฒ ์ง์. (๋์ผํ์ง๋
์์ง๋ง ์ด์ ์ ์ฌํ ๊ฐ๋
์ด null pointer constant ๋ก ์ฐ์
๋๋ค)
constant pointer ๋ ํฌ์ธํฐ์ด๊ธฐ๋ ํ๋ฐ, ๊ทธ ๊ฐ์ด ๋ณํ์ง ์๋ ํฌ์ธํฐ๋ก ๋ณผ
์ ์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก๋ lvalue ์
๋๋ค. (int * const ๊ฐ ์ด์ ํด๋นํ๋ค
๊ณ ๋ณผ ์ ์์ต๋๋ค - ์ง๊ธ ๋ค๋ฅธ ํธ์์ ์งํ์ค์ธ ๋
ผ์์์ ์ธ์ฉ๋์๋ฏ์ด ํ
์ค์ example ์์ ์ฐพ์๋ณผ ์ ์์ต๋๋ค)
์ ๋๊ฐ ๋๋ฆฌ๋ผ ์๊ฐํฉ๋๋ค. (๊ฐ์ธ์ ์ธ ์๋ฏธ๋ถ์ฌ์ด๋ฏ๋ก, ์ด์๊ฐ ์์ ์๋
์์ต๋๋ค. ๋ํ ํ์ค์์ ์ ์ํ๊ณ ์๋ ์ฉ์ด๋ค์ด ์ ๋ ์๋๋๋ค)
๋ฌธ์ ๋ *๋ฐฐ์ด ์์ฒด๊ฐ lvalue ๋ผ๋ ์ฌ์ค*์ ํ๋ฆผ์ด ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฐฐ์ด
์ lvalue ์ธ๋ฐ, ๋ฐฐ์ดํ์ ์์์ด ๋์
์ฐ์ฐ์์ ์ข๋ณ์ ์ค๋ฉด, ํฌ์ธํฐ๋ก ๋ณ
ํ๋๋ฉด์ ๋์ด์ lvalue ๊ฐ ์๋๋๋ค (C99 6.3.2.1#3 - ์ ๊ฐ ์ง๋ ๋ฒ ๋ต๋ณ
์ ์ธ ๋ ๊น๋นกํ ๋ถ๋ถ์
๋๋ค). ๊ทธ๋ ๋ค๋ฉด (๋ฌธ์ ๊ฐ ๋๋ ์ฉ์ด๋ค์ ๋ํ ์ ์
์๋ฅผ ์ ์ฉํ๋ค๋ฉด) pointer constant ๋ผ๋ ๋ง์ด ๋ ์ ํฉํ ์ค๋ช
์ด ๋ ์ ์
์ต๋๋ค. ํ์ง๋ง "๋ฐฐ์ด์ ๋๋ถ๋ถ์ ๋ฌธ๋งฅ์์ pointer constant ๋ก ๋ณํ๋๋ค"
๋ผ๋ ์ค๋ช
์ ๋ฐฐ์ด ์์ฒด๊ฐ lvalue ๋ผ๋ ์ฌ์ค์ ํ๋ฆฌ๊ฒ ๋ง๋ค๋ฉฐ, ์ค์ ๋ก C ๊ฐ
๊ฐ์ง๊ณ ์๋ lvalue ๋ก์์ ๋ฐฐ์ด์ ์ด๋ฏธ์ง๋ฅผ ์๋ชป ์ ๋ฌํ ์ ์์ต๋๋ค. ์ด
๋ ์ ์์์์ ๋์จ ๊ฒฐ๋ก ์ด ์๋๋ผ ์ค์ C ๊ฐ์๋ฅผ ํด ๋ณธ ๊ฒฐ๊ณผ ์์ ์คํ์
์ ์ป์ ๊ฒฐ๋ก ์
๋๋ค. ํธ๊ธฐ์ฌ์ ์์ ๊ฐ์ ์ค๋ช
์ด ๋ฐฐ์ด์ ์ด๋ฏธ์ง๋ฅผ ์ผ๋ง๋
์ ์ ๋ฌํ ์ ์๋์ง ์์๋ณด๊ณ ์ (ํฌ์ธํฐ์ ๊ฐ๋
์ ์๊ณ ์๋) ๊ฐ์๋ฅผ ๋ฃ๋
๋ถ๋ค๊ป ์ ์ค๋ช
์ ๋ํ ๊ทธ๋ฆผ์ ๊ทธ๋ ค ์ฃผ์ค ๊ฒ์ ๋ถํ๋๋ ธ๊ณ , ๊ฑฐ์ ๋ชจ๋ ๋ถ๋ค
์ด ์๋ชป๋ ๊ทธ๋ฆผ (๋ฉ๋ชจ๋ฆฌ ์ด๋๊ฐ์ ์์๊ฐ ์๊ณ , ๊ทธ ์์๊ฐ ๋ฐฐ์ด ์์๋ค์
์์๋ฒ์ง๋ฅผ ๊ฐ๋ฅดํค๋ ๊ทธ๋ฆผ) ์ ๊ทธ๋ ค์ฃผ์
จ์ต๋๋ค. ๋ฌผ๋ก , C ์ ์ค์ ์ ์ธ ๊ตฌํ
์ ๊ทธ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ์ ์์ต๋๋ค (์ด๋ฅผ ๊ฐ์ง๊ณ , ์ด๋ค๋ถ์ ์ฒญ์ถ์ด๋์ด๋ผ๊ณ ๋
๋ฆฐ ์ ์ด ์์ฃ ^^). ํ์ง๋ง, C ์ ์ถ์์ ์ธ ์ธ์ด ์ ์์ ๋ฐ๋ฅด๋ฉด ๋ฐฐ์ด ์์๊ฐ
storage ์ ์กด์ฌํ๊ณ ๊ทธ ์ ์ฒด๊ฐ ์ด๋ ํ ๋ฐฐ์ด๋ช
์ ๊ฐ๋ ๊ทธ๋ฆผ์ด ์ฌ๋ฐ๋ฅธ ๊ทธ๋ฆผ
์
๋๋ค (๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์์ผ๋ฉด ์ข์ํ
๋ฐ ๋ง๋ก ์ค๋ช
ํ๋ ค๋ ์ ๋ฌ์ด ์ฌ๋ฐ๋ฅด๊ฒ
๋ ์ง ๊ฑฑ์ ์
๋๋ค - clc FAQs ์ฑ
์ ๋ณด์๋ฉด ์ ๊ฐ ์ค๋ช
๋๋ฆฐ ๊ทธ๋ฆผ์ด ์ ๊ทธ๋ ค์ ธ
์์ต๋๋ค). ์ฆ ์์ ๊ฐ์ ์ฌ์ค์ C ๋ฅผ ๊ณต๋ถํ๋ ์ฌ๋๋ค๋ก ํ์ฌ๊ธ "๋ฐฐ์ด์
pointer constant ์ด๋ค" ๋ผ๋ ์ฌ์ด ์๊ฐ์ ์ฌ์ด์ฃผ๊ธฐ์ ์ถฉ๋ถํ๋ค๋ ๋ป์
๋๋ค.
์ด๋ pointer constant ์ constant pointer ์ ์๋ฏธ์ ๊ตฌ๋ถ์ด ๋ช
ํํ์ง ์
์ ์ํ์์ ์ด๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํด๋ ๊ฒฐ๊ตญ ๊ฐ์ ์๊ณก๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด ๋ผ
์ ์๋ค๋ ๊ฒ์ด ์ ์๊ฐ์
๋๋ค. ์คํ๋ ค constant pointer ๋ผ๋ ์ค๋ช
๊ณผ ๋ฐฐ์ด
์ด lvalue ๋ผ๋ ์ฌ์ค์ ๊ฐ์กฐ๋ ๋ ์๋ชป๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์๋ ์๋ค๊ณ ํ
๋จ๋ฉ๋๋ค.
์ด๋๊น์ง๋ ๊ฐ์ธ์ ์ธ ์๊ฒฌ์ด๋ฏ๋ก, ์ด๋์ชฝ์ด๋ ์์ ๋ ์ค๋ช
์ "๋ฐฐ์ด์ ํฌ์ธ
ํฐ *์์*์ด๋ค" ๋ผ๋ ๊ทน๋จ์ ์ธ ์ค๋ช
์ด ์๋๊ณ ์๋ ํ๋ ธ๋ค๊ณ ์ฃผ์ฅํ์ง๋ ๋ชป
ํ๊ฒ ์ต๋๋ค. ํ์ง๋ง, ๋ฐฐ์ด์ด lvalue ๋ผ๋ ์ค์ํ ์ฌ์ค (์ด ์ฌ์ค๋ก ์ธํด ๊ธฐ
์กด์ ์๋ชป ์๊ณ ์๋ C ์์์ lvalue ๊ฐ๋
์ ๊นจ๋จ๋ฆด ์ ์์ต๋๋ค) ๋งํผ์
๋ฐฐ์ด-ํฌ์ธํฐ ๋ณํ ์ค๋ช
์ ๋น ์ ธ์๋ ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋์ ๋ ์ด๋ฒ ๋
ผ์๋ฅผ ํตํด ์ ๊ฐ ์ต๊ทผ ๋ช๋ฌ๋์ ๋ฐฐ์ด์ ๋์
์ฐ์ฐ์์ ๊ด๊ณ
๋ฅผ ์๋ชป ์๊ณ ์์๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์์ต๋๋ค. ๋ฐฉ๊ธ ๊ฒ์ํด๋ณด๋ ๋งค์ฐ ์ค๋์
(์ ๊ฐ ๊ทธ๋ฌํ ๋ด์ฉ์ ๊ณต๋ถํ ๋น์) ์ ๊ฒ์ํ์ ์ฌ๋ฆฐ ๊ธ์๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ค๋ช
๋์ด ์๋๋ฐ ์ต๊ทผ์ ๋ช๋ช ๊ธ์์ ์๋ชป๋ ์ค๋ช
์ ํด์๊ตฐ์. ์ง๊ธ๋ถํฐ ํฌ์คํ
ํ๋ ๋ชจ๋ ๊ธ์ ๊ฒ์ํด ์ ์ ํ๋ ๊ธ์ ์์ฑํด์ผ ๊ฒ ์ต๋๋ค. ์ด ์ ์ ๋ํด ๊ฐ
์ฌ๋๋ฆฝ๋๋ค.
>
>[..]
>"char buffer[255]; ์์ buffer๋ 'ํฌ์ธํฐ ์์' ์
๋๋ค.
>
>์์ ์๋ก ๋์ ๊ฒ๊ณผ๋ ๋ถ๋ช
ํ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
>
>>๋ฐฐ์ด์ expression์ ์ฌ์ฉ์ด ๋ ๊ฒฝ์ฐ pointer๋ก conversion์ด ๋ฉ๋๋ค(sizeof๋ ์ ์ธ).
>
>๋ ์ด๋ค๊ฐ์?
์๋ฒฝํ๊ฒ ์ณ์ ์ค๋ช
์
๋๋ค. ๋ฌผ๋ก , ๋ฐฐ์ด์ด lvalue ๋ผ๋ ์ฌ์ค๊ณผ pointer ๋ก
๋ณํ๋๋ฉด ๋์ด์ lvalue ๊ฐ ์๋๋ผ๋ ์ค๋ช
์ด ํจ๊ป ์๋ค๋ฉด ๊ธ์์ฒจํ๋ผ ์๊ฐ
ํฉ๋๋ค.
>
>๋ง์ง๋ง์ผ๋ก ํ ๊ฐ์ง๋ง ๋, ์ ํ์ค๋ฌธ์์์ constant๋ผ๋ ํ์ ์๋ฅผ pointer์์
>๋ถ์ด์ง ์์ ๊ฒ์ ๋ฌด์จ ์ด์ ์์ ๊ฐ์?
>
๊ทธ ์ด์ ๋, ์ผ๋จ constant pointer, pointer constant ๋ฅผ ์ ์ํ์ง ์์๊ธฐ
๋๋ฌธ์
๋๋ค. ์ด๋ฏธ ๋ค๋ฅธ ๋ถ๋ถ์์ ๋์ด์ lvalue ๊ฐ ์๋๋ผ๊ณ ์ด์ผ๊ธฐํ๊ธฐ ๋
๋ฌธ์ ๊ตณ์ด ๊ทธ๋ฌํ ๋ค๋ฅธ ๊ฐ๋
์ ์ ์ํด๊ฐ๋ฉฐ ๋ฐฐ์ด-ํฌ์ธํฐ ๋ณํ์ ์ค๋ช
ํ ํ์
๊ฐ ์์ต๋๋ค. ๊ทธ๋ฅ type ์์ฒด๊ฐ pointer ๋ก ๋ณํ๋๋ค๋ ๊ฒ๋ง์ผ๋ก๋ ๋ค๋ฅธ ๋ถ
๋ถ๊ณผ ์ฐ๊ณ๋ ํด์์ ํตํด ์คํ๋ ค ๋ ์ ํํ ๊ธฐ์ ์ ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
C ํ์ค์ ๊ฒฝ์ ์ ์ธ ์ด์ ๋ก ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ง์ ๊ฒ๋ค์ ์์ฐ์ค์ ๊ธฐ์ /์
์ํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ถ๋ถ๋ ํ์ค ํด์์ ๊น๋ค๋กญ๊ฒ ๋ง๋๋ ์ด์ ์ค ํ๋
์
๋๋ค.
์ฉ์ด์ ๊ด๋ จ๋์ด ์ํผ์๋ ํ๋๋ฅผ ๋ง์๋๋ฆฌ๋ฉด, C90 ์์๋ integer type ๊ณผ
integral type ์ด๋ผ๋ 2๊ฐ์ ์ฉ์ด๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๋์ ๊ฒฐ๊ตญ ๋์ผํ "์ ์
ํ" ์ ๊ฐ๋ฅดํค๋ ๊ฒ์ด์๋๋ฐ, ํ์ ๋ ์ค ํ๋๋ง ์ ์๊ฐ ๋์ด ์๋ค๋ ์ง์
์ด ๋ค์ด์์ต๋๋ค. ๊ทธ๋์ C99 ์์๋ (C9X ๋ฅผ ๊ฒ์ํด ๋ณด์๋ฉด ์์๊ฒ ์ง๋ง)
integer type ์ด๋ผ๋ ์ฉ์ด๋ง์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋์ผํ ์ด์ผ๊ธฐ๋
variable ๊ณผ object ๋ผ๋ ์ฉ์ด์๋ ์ ์ฉ๋ฉ๋๋ค. ๋์ ๋์ผํ ๊ฒ์ ๊ฐ๋ฅดํค๋
์ฉ์ด์์ผ๋ฉฐ, C99 ์์๋ object ๋ผ๋ ์ฉ์ด๋ง์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ์ต์ํ
์ ์ฉ์ด๋ฅผ ๋์
ํ๋ ๊ฒ์ด ํ์ค์ ๊ธฐ์ ์ ๋ถ๋ช
ํ๊ฒ ๋ง๋ค์ด ์ค ์ ์์ต๋๋ค.
๊ธด ์ค๋ช
์ ์์ง๋ง, ์ ์ค์์ ํ๋ฅ์ง๋ฅ ๋๋ ๋ฐ๋์ ์ผ๋ง๋ ๋์์ด ๋ ์ง๋
๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
"๋ฐฐ์ด์ด pointer constant ๋ผ๊ณ ์ค๋ช
ํด๋" ๋ฅผ "๋ฐฐ์ด์ด ๋๋ถ๋ถ์ ๋ฌธ๋งฅ์์
pointer constant ๋ก ๋ณํ๋๋ค๊ณ ์ค๋ช
ํด๋" ๋ก ์ ์ ํฉ๋๋ค. ์ฃ์กํฉ๋๋ค.
๋ต๋ณ ์ ์ ํฉ๋๋ค. ๋ฐฐ์ดํ ์์์ด ๋์
์ฐ์ฐ์์ ์ข์ธก ํผ์ฐ์ฐ์๋ก ์ฌ์ฉ๋ ์
์๋ ์ด์ ๋ modifiable lvalue ์ด๊ธฐ ๋๋ฌธ์ด ์๋๋ผ, lvalue ์ด๋ ๋ฐฐ์ด์ด
์ ๊ฐ ๋ง์๋๋ ธ๋ ๋ช๋ช ๋ฌธ๋งฅ์ ์ ์ธํ๊ณ ๋ ํฌ์ธํฐ๋ก ๋ณํ๋๋ฉฐ ๋์ด์ lvalue
๊ฐ ์๋๊ธฐ ๋๋ฌธ์
๋๋ค. ์ค๋์ ์ ๊ณต๋ถํ๋ ๋ด์ฉ์ด๋ผ ์ค์ํ์ต๋๋ค. ์ง์ฌ์ผ
๋ก ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
๋ต๋ณ ์ ์ ํฉ๋๋ค. ๋ฐฐ์ดํ ์์์ด ๋์ ์ฐ์ฐ์์ ์ข์ธก ํผ์ฐ์ฐ์๋ก ์ฌ์ฉ๋ ์
์๋ ์ด์ ๋ modifiable lvalue ์ด๊ธฐ ๋๋ฌธ์ด ์๋๋ผ, lvalue ์ด๋ ๋ฐฐ์ด์ด
์ ๊ฐ ๋ง์๋๋ ธ๋ ๋ช๋ช ๋ฌธ๋งฅ์ ์ ์ธํ๊ณ ๋ ํฌ์ธํฐ๋ก ๋ณํ๋๋ฉฐ ๋์ด์ lvalue
๊ฐ ์๋๊ธฐ ๋๋ฌธ์
๋๋ค. ์ค๋์ ์ ๊ณต๋ถํ๋ ๋ด์ฉ์ด๋ผ ์ค์ํ์ต๋๋ค. ์ง์ฌ์ผ
๋ก ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
๋ค๋ฅธ ๊ธ์์ ์ ์ ํ๋ฏ์ด ๋ฐฐ์ดํ ์์์ด ํฌ์ธํฐํ์ผ๋ก ๋ณํ๋๋ฉด์ ๋์ด์
lvalue ๊ฐ ์๋๊ธฐ ๋๋ฌธ์
๋๋ค. lvalue ๊ฐ ์๋๋ฏ๋ก ๊ทธ๊ฒ์ ๋ถ๋ถ ์งํฉ์ธ
modifiable lvalue ๋ ๋์ฑ ๋ ์ ์๊ฒ ์ฃ . ์๋ชป๋ ์ค๋ช
์ ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
๋จ ๋งํ๊ณ ์ถ์๊ฒ์ ์์ด ์ฐ๋ ์ ๋ค ๋ง์ด ํ๊ธ ์ฐ๋
์ ๋ค ๋ง๋ณด๋ค ์ ๋น์ฑ ์๋ค๋ ์ฌ๊ณ ๋ ๋ฒ๋ฆฌ์๊ธฐ ๋ฐ๋ผ๊ณ
(์ฌ๋์ฃผ์๋ผ๊ณ ํ๋๊ฐ)
๋จ์ ๋ชฐ์ ๋ถ์น๊ธฐ ์ ์ ๊ทธ ๋ฐฉ๋ฒ์ ์์ ํํ
๋จผ์ ์ ์ฉํ์๋
์ฌ์ ๋ ๊ฐ์ง์๊ธฐ๋ฅผ ์ถฉ๊ณ ๋๋ฆฝ๋๋ค.
๊ณ์ ์ด๊ณณ์์ ๋ต์์๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ฉด์ ์ด๋ง
ํ๋ฆฌ๋ฆญ~~~
์ ๋ง๋ก ํ๋ฆฌ๋ฆญ~~~
๊ฒฐ๊ตญ ๋ ์ฐ๋ คํ๋ ๊ธ์ด ํฌ์คํ
๋์๊ตฐ์. ์ ๊ฐ ์ด ๊ทธ๋ฃน์ ๊ธ์ ํฌ์คํ
ํ ๊ฒ
๋ถํฐ๊ฐ ๋ ์๋ชป์ด์๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค.
์์ ์ ์ ๋ก ์ธํด ๋ค์ ์๋๋ฌ์ด ์ผ์ด ์์์ ๋ ํ์ค์ ์ค์์ฑ์ ๊ทธ๋ ๊ฒ
์ญ์คํ์๋ ("๊ฐ์ธ์ ์ธ ๊ฐ์ ๋ฌธ์ ์ ํ์ค์ ๋์ฌ๋ค์ด์ง ๋ง๋ผ" ๊ณ ํํํ์
จ
์์ฃ ?) ๋ถ๋ ๊ฒฐ๊ตญ ๊ฐ์ ์ ์น์ฐ์น ๊ธ๋ก ์ฐ๋ ๋๋ฅผ ๋ณด๊ธฐ์ข๊ฒ ๋ง๋ฌด๋ฆฌ ํ์๋๊ตฐ
์. ์, ์ ๊ฐ ์๋ชปํ์ต๋๋ค. ์ ๋ ๊ธ๋ง ํฌ์คํ
ํ๋ฉด ๊ทธ๋ฃน์ ์ด๋ฐ ๋ถ์๊ธฐ๋ก
๋ง๋๋ ์ฌ๋์ธ๊ฐ ๋ด
๋๋ค (--;).
>๋์ด์ ๋ฌผ๊ณ ๋์ด์ง ์๊ฐ์ ์์ง๋ง
>๋ฌผ๋ก ํ ๋ง์ด ์์ด์ด ๋์ด ์ง์ง ์๋๋ค๊ณ ์๊ฐํ์๋ฉด
>์์ฒญ๋ ์ค์ฐ์ ํ์๊ณ ๊ณ์๋ ๊ฒ์ด๊ณ ์
๊ธฐ์ ์ ์ธ ๋ด์ฉ์ด๋ผ๋ฉด ๋ ๋ฌผ๊ณ ๋์ด์ง์
๋ ์ข์ต๋๋ค (๊ผญ ์ด๊ณณ์ด ์๋์ด๋ ์ข
์ต๋๋ค - ๊ฐ์ธ๋ฉ์ผ์ด๋ ์ ํํ์ด์ง ๊ฒ์ํ๋ฑ). ์ดํดํ ์ ์๋ ๋ถ๋ถ์ด ์
๋ค๋ฉด, ์ ๋ ํ์ค์ ๋ชจ๋ ๋ถ๋ถ (normative ๋ ์๋๋ ) ์ ํตํ์ด constant
pointer ๋ผ๋ ์ฉ์ด๊ฐ ์ฌ์ฉ๋์๋ค๋ ์ ์ ์ด์ ์ ๋ต๋ณ, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ด์ฉ์
๋
ผ์๊ฐ ์งํ์ค์ด์๋ ๋ค๋ฅธ ๋ต๋ณ์์๋ ์ธ์ ํ์ต๋๋ค. ๋ค๋ง, ๊ทธ๊ฒ์ ๋ช
ํํ
์๋ฏธ์ ๋ํ ํ์ค์ผ๋ก์์ ๊ฐ์ ๋ ฅ์ informative part ์ด๊ธฐ ๋๋ฌธ์ ์ ํ ๋ณ
๊ฐ์ ๋ฌธ์ ๋ผ๋ ์ฃผ์ฅ์ ํ ๊ฒ๋ฟ์
๋๋ค. ๋๊ป์ ๋ฌด์จ ๋ง์์ ํ๊ณ ์ถ์ผ์ ์ง
์๊ณ ์์ผ๋ฉฐ, ๋๋ ์ ์ฃผ์ฅ์ด ๋ฌด์์ธ์ง ์์๋ฆฌ๋ผ ๋ฏฟ์์ต๋๋ค. ๋์ ์ฃผ์ฅ์ด
๊ทธ๋งํผ ๊ธฐ์ ์ ์ผ๋ก ์ ๋นํ ๊ฒ์ด๋ผ๋ฉด ์ ๋ฅ ํผํ๋ฏ ๊ฐ์ ์ ์ธ ๊ธ 2๊ฐ๋ฅผ ํฌ์ค
ํ
ํ์๋ฉฐ ๋์ด์์ ๋
ผ์๋ฅผ ํผํ์๋ ๊ฒ์ธ์ง ๊ถ๊ธํ๊ตฐ์.
>
>๋จ ๋งํ๊ณ ์ถ์๊ฒ์ ์์ด ์ฐ๋ ์ ๋ค ๋ง์ด ํ๊ธ ์ฐ๋
>์ ๋ค ๋ง๋ณด๋ค ์ ๋น์ฑ ์๋ค๋ ์ฌ๊ณ ๋ ๋ฒ๋ฆฌ์๊ธฐ ๋ฐ๋ผ๊ณ
>(์ฌ๋์ฃผ์๋ผ๊ณ ํ๋๊ฐ)
์ ๊ฐ comp.std.c ๋ฅผ ์ธ๊ธํ ์ด์ ๋ ๊ทธ๊ณณ์ ๊ณ์ ๋ถ๋ค์ด, (์ ๋ฅผ ํฌํจํด) ์ด
๊ณณ์ ๊ณ์ ๋๋ถ๋ถ์ ๋ถ๋ค๋ณด๋ค ํ์ค์ ๋ํด์ ์ฌ๋ฐ๋ฅธ ํด์์ ํ ์ ์๊ธฐ ๋
๋ฌธ์
๋๋ค (์ต์ํ ์ฌ๋ฐ๋ฅธ ํด์์ ๋ด๋ฆด ๊ฐ๋ฅ์ฑ์ ๋ ํฌ๋ฉฐ, ๋ช๋ช ๋ถ์ ์ค์
ํ์คํ ์์
์ ์ฐธ์ฌํ๊ณ ์๋ ๋ถ๋ค์
๋๋ค). ๋จ์ํ ๊ทธ๋ค์ด ๊ฒฝ์ ์ ์ผ๋ก๋ ์
์น์ ์ผ๋ก ์ ์ง๊ตญ ๊ตญ๋ฏผ์ด๊ณ , ์์ด๋ฅผ ์ด๋ค๋ ์ด์ ๋ง์ผ๋ก ๋๊ฒฝํ๋ ๊ฒ์ด ์๋
๋๋ค. ์์ค๋งํ ๋ถ์ด ์ ์ด๋ฐ ์์ ๊ธ์ ์ฐ์
จ๋์ง ์ดํดํ๊ธฐ ํ๋ญ๋๋ค.
>๋จ์ ๋ชฐ์ ๋ถ์น๊ธฐ ์ ์ ๊ทธ ๋ฐฉ๋ฒ์ ์์ ํํ
๋จผ์ ์ ์ฉํ์๋
>์ฌ์ ๋ ๊ฐ์ง์๊ธฐ๋ฅผ ์ถฉ๊ณ ๋๋ฆฝ๋๋ค.
์ ๋ ๋์ ๋ชฐ์๋ถ์ด์ง ์์์ต๋๋ค. ์์ ์ด ์๋ชป ์๊ณ ์๋ ๋ถ๋ถ์ ์ง์ ๋ฐ์ผ
๋ฉด ์๋๋ฐฉ์ด ์์ ์ ๋ชฐ์ ๋ถ์ฌ๊ฐ๋ฉฐ ๊ณต๊ฒฉํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ ์กฐ๊ธ
์๋ชป๋์๋ค๊ณ ์๊ฐํ์ง ์์ผ์ญ๋๊น? ์์๊ฒ ์ง๋ง (์์ ๊ฐ์ผ๋ฉด ์ ๊ทธ๋ฌ๊ฒ ์ง
๋ง) ์ ๋ ๋์ด ์๋ํ๋ ๋ฐ๋ฅผ ์ดํดํ๊ธฐ์ํด ๋
ธ๋ ฅํ๊ณ ์์์ ํํํ๊ธฐ ์ํด
์ ์ผ์ผ๋ฉฐ (์ผ๋ง๋ ๋๋ฌ๋ฌ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค๋ง), ๋ ์ ์๊ฒฌ์ ์ธ์ ํด ์ฃผ
์๊ธฐ๋ฅผ ๋ถํ๋๋ฆฌ๊ณ ์๋ ๊ฒ์
๋๋ค.
----------------------------------------------------------------------
>๊ทธ๋ฆฌ๊ณ ๋ํ๋ ๋น๊ฑด์ค์ ์ธ ์๋ชจ์ ์ธ ํ ๋ก ์ ๋๋
>์์ ํด ์ฃผ์ฌ์ด...
>
์ ๊ฐ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ ์ ๋ํ๋์? (์ ๊ฐ ์ ๋ ๋ฏธ์ฌ์ผ์ด๋ผ๋
๋ฉ๋๊น? ์ฐ๋ ~) ๋๊ป์ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ ์ด ์ํ์ ๋ค๊ณ ์ด๋ฐ ์์ผ๋ก ์ค๋ ์ด
๋ฃจ์ด์ง ํ ๋ก ์ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ผ๋ก ๋งค๋ํ์๋ ๊ฒ์ ์ณ์ง ์๋ค
๊ณ ์๊ฐํฉ๋๋ค. ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ผ๋ก ์ ๋๋ ํ ๋ก ์ ์ ์ฐธ์ฌํ์
์ ๊ทธ
๋ ๊ฒ ์ด์ ๋ด์๊ณ ๊ณ์ ์ง ์ดํดํ๊ธฐ ์ด๋ ต์ต๋๋ค.
์ค์์ฑ์ ์ญ์คํ์๋ ํ์ค๋, ๊ฒฐ๊ตญ ์ ์ ์ํด ๋
ผ์๊ฐ ์ด๋ฃจ์ด์ง๊ณ , ๋์ ๊ธฐ
๋ถ์ ์ํ๊ฒ ํ๋ค๋ฉด ๊ฒฐ๊ตญ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ด ๋๋ ๊ฒ์ด๊ตฐ์. ์
์๊ฒ ์ต๋๋ค. ์ ๋ ๋ถ์ ํ๊ณ ์ฒ์ฑ์ด ๊ฒ์๋ฌ์ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์
์ข์ํ๋ต๋๋ค. comp.std.c ์๋ ๊ทธ๋ฐ ํ ๋ก ์ ์ข์ํ๋ ๋ถ์ด ๋ง์ด ๊ณ์์ ์
๋ก์๋ ๋คํ์ค๋ฝ๊ฒ ์๊ฐํ๊ณ ์์ต๋๋ค. ^^
๊ทธ๋ผ...
p.s. ๊ทธ๋๋ ๋คํ์ค๋ฝ๊ฒ ์ด๋ฒ์๋ ์ต๋ช
์ผ๋ก ์๋จน์ง๋ ์์๋ค์. ๋ ์๋จน๊ธฐ
์ ์ ์กฐ์ฉํ ์ฌ๋ผ์ ธ์ผ์ง์.
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
'์์ฝ๋ค.'
์ฌ์ค, ๋ณธ ๋ด์ค๊ทธ๋ฃน์ posting์ ํ๊ธฐ ์์ํ์ ๋, ๋์ reply์ ๋ง์ ๊ธฐ๋๋ฅผ ํ๊ณ ์์์ต๋๋ค๋ง, ๋ ์ด์ ์ด ๊ทธ๋ฃน์ posting์ ํ์ง ์๊ฒ ๋ค๋ผ๋ ๋ง์์ ์ด ๊ทธ๋ฃน์ ๋ฌด์ํ๋ ์๋ฏธ๊ฐ ํฌํจ๋ ๊ฒ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ๊ตฐ์(์๋๊ธธ ๋ฐ๋๋๋ค). ์ฝ 1-2๋ ์ ์๊ฐ csc ๊ทธ๋ฃน์ ์ ๊ธ์ด ์์ฒญ๋ re:๋ฅผ ๋ฌ๋ฉด์ ์๋ช ๋ ฅ์ ์ ์งํ๋ ๊ธ์ด ์์๋๋ฐ ๊ธฐ์ตํ์ค๋ฐ์ง ๋ชจ๋ฅด๊ฒ ๊ตฐ์(๊ท์ฐฎ์์ ๊ทธ ๊ธํ๋ ๋ฅผ ๋ค ์ฝ์ง ์์์ง๋ง). ๊ทธ ๋น์์ [JW]๋ผ๋ ๊ธ๋จธ๋ฆฌ๋ฅผ ๋ณธ ๊ธฐ์ต์ ์์ต๋๋ค๋ง... ๊ทธ ๊ธ์ ์ ๋ชฉ์ '์ด๋๊ฐ๋ฉด ํ์ค๋ฌธ์๋ฅผ ์ฐพ์ ์ ์์๊น์?'๋ผ๋ ๊ธ์ด์์ต๋๋ค(๋ฌผ๋ก ํ์ค๋ฌธ์๋ฅผ ์๋ฒฝํ๊ฒ ๋ถ์ํ ์ ์ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์๊ฐ๋ญ๋น๋ผ๊ณ ์๊ฐํ๊ณ ).
์ด์จ๊ฑฐ๋ ๊ธด ๊ธ๋ก๋ด์ ์ต์ ์ ๋คํด ์ค๋ช ์ ํ๊ธฐ๋ ค๊ณ ๋ ธ๋ ฅํด ์ฃผ์ ๋ถ๋ถ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก mail๋ณด๋ค๋ board๋ฅผ ์ข์ํ๊ธฐ๋๋ฌธ์ ๊ฐ์ธ๋ฉ์ผ์ ๋๋ ค ๊ท์ฐฎ๊ฒ ํด๋๋ฆฌ๋ ์ผ์ ์์ํ ๋ ๋๋ก๋ก board๋ฅผ ์์ฃผ ๋ฐฉ๋ฌธํ์ ์ ์ข์ ๊ธ ๋จ๊ฒจ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ์ ์ ๋์ ๊ธ์ ๋ํ ๊ธฐ์ ์ ์ธ ๊ธํ๋ ๋ ๋ด์ผ ์์นจ์ ๋ค์ ๋ฌ๋๋กํ๊ฒ ์ต๋๋ค.
์ค๋์ ๋ถํฐ ์๊ฐํด ์ค๋ ๊ฒ์ด '๋ค์๋','๋ ๋ฒ ๋ค์'๋ผ๋ ๋ง์ ์ฝ๊ฒ ํ๋ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ด์์ต๋๋ค.
์ ๋ต๋ณ์ ๋ํด ๋ง์ํ๊ณ ๊ณ์ ๊ฒ์ด๋ผ๋ฉด ์ ์ ๋ง์ด ๋ง์ ํ์ด ์๋๋ผ ์ ๊ธ
์ค๋ ฅ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ธ ๋ฏ ํฉ๋๋ค.
>'์์ฝ๋ค.'
์ ์ ๋ง์ด ๋์๊ธฐ๋ ํ๋ ๋ด
๋๋ค. ^^; (์์ฆ ์์ฃผ ํฌ์คํ
๋จ์๊ธฐ๊ฐ ์๋๊ฐ
์?)
>
>์ฌ์ค, ๋ณธ ๋ด์ค๊ทธ๋ฃน์ posting์ ํ๊ธฐ ์์ํ์ ๋, ๋์ reply์ ๋ง์ ๊ธฐ
>๋๋ฅผ ํ๊ณ ์์์ต๋๋ค๋ง, ๋ ์ด์ ์ด ๊ทธ๋ฃน์ posting์ ํ์ง ์๊ฒ ๋ค๋ผ๋
>๋ง์์ ์ด ๊ทธ๋ฃน์ ๋ฌด์ํ๋ ์๋ฏธ๊ฐ ํฌํจ๋ ๊ฒ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ๊ตฐ์(์๋๊ธธ
>๋ฐ๋๋๋ค).
์ ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ ๊ฐ ์ด ๊ทธ๋ฃน์ csc, clc ๋ณด๋ค ๋ฌด์ํ๋ค๋ฉด, ์ด ๊ณณ์
๊ทธ๋ ๊ฒ ๋ง์ ์๊ฐ์ ๋ค์ฌ๊ฐ๋ฉฐ ๊ธ์ ํฌ์คํ
ํด์ค์ง๋ ์์์ ๊ฒ๋๋ค. ๋ฌผ๋ก ,
๋ฉ์ผ์์ ๋ช๋ช๋ถ์ "์ผ๋ฐฉ์ ์ธ ๋ด์ฌ์ ๊ฐ์ฌ๋๋ฆฐ๋ค" ๊ณ ๋ง์ํด์ฃผ์
จ์ง๋ง, ์ ๋
์ ๊ฐ ํ๋ ํ๋๋ค์ "์ผ๋ฐฉ์ ๋ด์ฌ" ๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๋ํ ์ผ๋ฐฉ์
์ผ๋ก ์ด๊ณณ์ ๊ณ์ ๋ถ๋ค์ "๊ฐ๋ฅด์ณ์ค๋ค" ๋ผ๊ณ ์๊ฐํด ๋ณธ ์ ๋ ์์ต๋๋ค. ๋
์ ๊ฐ ์ฌ์ฉํ๋ฏ์ด ์ด ๊ทธ๋ฃน์ ์๋ ๋ชจ๋ ๊ธ์ "์ง๋ฌธ-๋ต๋ณ" ์ด ์๋๋ผ "๋
ผ์"
์
๋๋ค. ์กฐ๊ธ์ด๋ผ๋ ์ฑ์์๋ ๊ธ๋ก ๋ต๋ณํด ๋ณด์ ๋ถ๋ค์ ์์๊ฒ ์ง๋ง, ๋ต๋ณํ
๋ ์ฌ๋๋ ๋ง์ ๊ฒ๋ค์ ๋ฐฐ์ฐ๊ฒ ๋๋ค๊ณ ๋๋ผ๊ณ ์์ต๋๋ค. (์ฑ
์ ๋ชฉ์ด๋ผ๋ ์
๋ ค์ฃผ๊ธฐ ์ํด ์ฑ
์ ํ๋ฒ์ด๋ผ๋ ๋ ๊บผ๋ด๋ณด๊ฒ ์ง์? :-)
์ ๊ฐ ์ด ๊ทธ๋ฃน์์ ๋๋ผ๋ ์์ฌ์ด ์ ์ ๊ธฐ์ ์ ์ธ ๋ด์ฉ์ ๋
ผ์์ ๊ฐ์ ์ ์ฝ๊ฒ
๋์ด๋ค์ธ๋ค๋ ์ ์
๋๋ค. ํนํ๋ ์์ ์ ์ค์๋ ์๋ชป์ ์ง์ ๋ฐ์์ ๋ (๋ฌผ๋ก ,
๋นํฉ๋๊ณ ์ฐฝํผํ ์๋ ์์ต๋๋ค. ์ ์ญ์ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ํ์ง๋ง ๊ทธ๋ฐ ๋ด
์ฉ์ ์ง์ ๋ฐ์ง ์๊ณ ์ง๋๊ฐ๋ค๋ฉด ํ์ ๋ค์ ๊ณ ์ณ์๊ธฐ๋ ๋ ์ด๋ ค์ด ์ผ์
๋๋ค.
๋ฐ๋ผ์ ๊ทธ๋ฐ ๋ถ๋ถ์ ์ง๊ธ ๋ฐ๋ก์ก์ ์ ์๋ค๋ ์ฌ์ค์ ๋ํด ๊ณ ๋ง๊ฒ ์๊ฐํด์ผ
ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค) ์ง์ ํ ์ฌ๋์ ๋ง์น ๋จ์ ํ์ ์ ๊ผฌ์ง์ด ๋ชฐ์์ธ์ฐ๋ ๊ณต๊ฒฉ
ํ ์ธ๊ฐ์ผ๋ก ๋งค๋ํ๋ ๋ชจ์ต์ ๋งค์ฐ ์ํ๊น์ต๋๋ค.
์ ๋ ๋ค๋ฅธ ๋ถ์ด ๋ง์ํ์ ๊ฒ์ฒ๋ผ ์ฌ๋์ฃผ์์ ๋น ์ ธ ์๋ ๊ฒ์ ์๋์ง๋ง (์ฌ
๋์ฃผ์์ ๋น ์ ธ ์๋ค๋ฉด ์ด ๊ทธ๋ฃน์์ ํ๊ตญ๋ง๋ก ํ๊ตญ์ฌ๋๊ณผ ์์ด๋ก ๋์ด ์๋
ํ์ค์ ๋ ๋ค์ง๋ ์์ ๊ฒ์
๋๋ค), ๋ค๋ฅธ ์ธ๊ตญ ๊ทธ๋ฃน์์ ๋๋ผ๋ ์ฌ์ค์ ์ต์
ํ ๋์๊ถ (๋ฌผ๋ก , ์ ๊ฐ ๋ณธ ๊ฒฝ์ฐ๋ ๊ณ ์ ํ๊ตญ, ์ค๊ตญ ์ฌ๋๋ฟ์ด๋ผ ์ด๋ ๊ฒ ํ๋
ํด์ํ๋ฉด ์ค๋ฅ๊ฐ ๋ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง) ์ฌ๋๋ค์ด ๊ฐ๊ด์ ์ฌ์ค์ ํ ๋ก ํ๋ ์
์ธ๊ฐ ๋ง์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฃน์์๋ ์ฒ์ ์ธ ๊ฒ ๋ง๋ฅ ์๋ก ํ๋ฃจ์๋
์ญ์ฌ์ฐจ๋ก์ฉ ๋ฐ๋ก ์ ์ ๊ธฐํ๋ค๊ฐ๋ ๊ฐ์ธ๋ฉ์ผ๋ก๋ ์๋ก์ ์๋ถ๋ฅผ ๋ฌป๊ณ ๋๋ด์
์ฃผ๊ณ ๋ฐ๋ ์ฌ์ ๊ฐ ์์ฝ์ต๋๋ค. (๋ฌผ๋ก ๋ชจ๋ ์ฌ๋์ด ๋ค ๊ทธ๋ฌํ ๊ฒ์ ์๋๊ฒ ์ง
๋ง ๋ง์
๋๋ค - ์ด๋ฒ์๋ ์ด์ฉ๋ฉด ํ๋ํด์์ ์ค๋ฅ์ผ์ง ๋ชจ๋ฆ
๋๋ค)
>์ฝ 1-2๋
์ ์๊ฐ csc ๊ทธ๋ฃน์ ์ ๊ธ์ด ์์ฒญ๋ re:๋ฅผ ๋ฌ๋ฉด์ ์๋ช
๋ ฅ์ ์ ์งํ
>๋ ๊ธ์ด ์์๋๋ฐ ๊ธฐ์ตํ์ค๋ฐ์ง ๋ชจ๋ฅด๊ฒ ๊ตฐ์(๊ท์ฐฎ์์ ๊ทธ ๊ธํ๋ ๋ฅผ ๋ค ์ฝ์ง
>์์์ง๋ง).
๊ธ์์ ์ ๊ฐ ๊ธฐ์ต๋ ฅ์ด ์๋ ์ ์ข์์; ๊ทธ ๋น์ ๋ฉ์ผ ์ฃผ์๋ฅผ ๋ฌด์์ผ๋ก ํ์ฌ
๊ธ์ ์ฐ์
จ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค์.
>๊ทธ ๋น์์ [JW]๋ผ๋ ๊ธ๋จธ๋ฆฌ๋ฅผ ๋ณธ ๊ธฐ์ต์ ์์ต๋๋ค๋ง...
์ ๊ฐ ํฌ์คํ
์ ์ฒ์ ์์ํ (๋๋ถ๋ถ ์ง๋ฌธ์
๋๋ค๋ง) ๊ธ์๋ง [JW] ๋ผ๋ ๋ง๋จธ
๋ฆฌ๋ฅผ ๋ต๋๋ค. ๋ต๋ณ์ ๋ฌ ๋๋ ์ ๋ชฉ์ ์์ ํ์ง ์์ต๋๋ค. (์ผ๋ถ Web-based
usenet service ์์๋ ์ ๋ชฉ์ด ๋ฐ๋๋ฉด ๋ค๋ฅธ ์ฐ๋ ๋๋ก ์ทจ๊ธํ๋๊ตฐ์)
ํ , ์ ๊ฐ ์ ํํ ์ธ์ ๋ถํฐ csc ์์ ํ๋ํ๋์ง ๊ธฐ์ตํ์ง๋ ๋ชปํ์ง๋ง, csc
๊ทธ๋ฃน์ด ์์์ ์์ง๋ ๋ชปํ์ ๋๋ ์ฃผ๋ก clc ์ ๊ธ์ ํฌ์คํ
ํ๊ณ ์์์ต๋
๋ค.
>๊ทธ ๊ธ์ ์ ๋ชฉ์ '์ด๋๊ฐ๋ฉด ํ์ค๋ฌธ์๋ฅผ ์ฐพ์ ์ ์์๊น์?'๋ผ๋ ๊ธ์ด์์ต๋
>๋ค(๋ฌผ๋ก ํ์ค๋ฌธ์๋ฅผ ์๋ฒฝ>ํ๊ฒ ๋ถ์ํ ์ ์ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์๊ฐ๋ญ
>๋น๋ผ๊ณ ์๊ฐํ๊ณ ).
>
>์ด์จ๊ฑฐ๋ ๊ธด ๊ธ๋ก๋ด์ ์ต์ ์ ๋คํด ์ค๋ช
์ ํ๊ธฐ๋ ค๊ณ ๋
ธ๋ ฅํด ์ฃผ์ ๋ถ๋ถ ๊ฐ
>์ฌ๋๋ฆฝ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก mail๋ณด๋ค๋ board๋ฅผ ์ข์ํ๊ธฐ๋๋ฌธ์ ๊ฐ์ธ๋ฉ์ผ์
>๋๋ ค ๊ท์ฐฎ๊ฒ ํด๋๋ฆฌ๋ ์ผ์ ์์ํ
๋ ๋๋ก๋ก board๋ฅผ ์์ฃผ ๋ฐฉ๋ฌธํ์
์ ์ข
>์ ๊ธ ๋จ๊ฒจ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ์ ์
๋์ ๊ธ์ ๋ํ ๊ธฐ์ ์ ์ธ ๊ธํ๋ ๋ ๋ด์ผ
>์์นจ์ ๋ค์ ๋ฌ๋๋กํ๊ฒ ์ต๋๋ค.
>
>์ค๋์ ๋ถํฐ ์๊ฐํด ์ค๋ ๊ฒ์ด '๋ค์๋','๋ ๋ฒ ๋ค์'๋ผ๋ ๋ง์ ์ฝ๊ฒ ํ๋
>๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ด์์ต๋๋ค.
>
์ด ๊ทธ๋ฃน์์ ์ฌ๋ฌ๊ฐ์ง (์ฌ๋ฏธ์๊ณ /์ฌ๋ฏธ์๋) ์ผ์ ๊ฒช์ผ๋ฉด์ ๋ช๋ช ๋ถ๋ค๋ก๋ถํฐ
์ข์ ์ธ์์ฒ ํ์ ๋ค์์๊ณ , ๋ ์ง๊ธ๋ ๋ฃ๊ณ ์์ต๋๋ค. ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ ๋ ๋๊ป ๊ฐ์ธ์ ์ผ๋ก(?) ๋ถํ๋๋ฆฌ๊ณ ์ถ์ ๊ฒ์ด ์์ต๋๋ค. ๊ธ์ ํฌ์คํ
ํ์ค
๋ ๊ฐ๋ฅํ๋ฉด ์ํฐ๋ฅผ ๋ช๋ฒ ๋๋ฌ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค(?). ํ ๋ฌธ๋จ์ด ๋๋ฌด ๊ธธ์ด ๊ธ
์ ์ฝ๊ฑฐ๋ ๋ต๋ณ์ ํ ๋ ๋ค์ ๋ถํธํฉ๋๋ค. (์ ๋ web-based service ๋ก๋ง
usenet ์ ์ฌ์ฉํ๋ค๋ณด๋, ๋์ ๊ธ์ ๋ฌธ์ฅ์ด ๊ธธ์ด ์คํฌ๋กค๋ฐ๋ฅผ ์ฎ๊ฒจ๊ฐ๋ฉฐ ๋ด์ผ
ํ๋ ๋ถํธํจ์ด ์์ต๋๋ค. ์ ๋ง๊ณ ๋ค๋ฅธ ๋ถ๋ค๋ ๊ทธ๋ฐ ๋ถํธ์ ๋๊ผ์ผ๋ฆฌ๋ผ ์๊ฐ
ํฉ๋๋ค)
๊ทธ๋ผ...
--
Jun Woong (myco...@hanmail.net)
Dept. of Physics, Univ. of Seoul
Cell: +82 16 467 6247
Web : http://c-expert.uos.ac.kr
์ง๊ธ๋ถํฐ ๋์ ํ๋ด๋ฅผ ์กฐ๊ธ๋ง ๋ด๋ณผ๊น ํฉ๋๋ค.
>๊ฒฐ๊ตญ ๋ ์ฐ๋ คํ๋ ๊ธ์ด ํฌ์คํ
๋์๊ตฐ์. ์ ๊ฐ ์ด ๊ทธ๋ฃน์ ๊ธ์ ํฌ์คํ
ํ ๊ฒ
>๋ถํฐ๊ฐ ๋ ์๋ชป์ด์๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค.
๋ฌด์์ ์ฐ๋ คํ์
จ์ผ๋ฉฐ ์ฐ๋ คํ์๋ ๋ฐ๊ฐ ๋ฌด์จ ๊ทผ๊ฑฐ๋ก ์ฐ๋ ค๊ฐ ๋์๋์ง ์ค๋ช
์
๋ถํ๋๋ฆฌ๋ฉฐ ๋์ด ์ด ๊ทธ๋ฃน์ ๊ธ์ ํฌ์คํ
ํ๋ ๊ฒ ๋ถํฐ๊ฐ ์๋ชป์ด๋ผ๋
๊ฐ์ด ๋
ผํ ์์ค์ด ์๋ ์ฌ๋๋ค๊ณผ ์ ๋ง์ํ์๊น ํํ์กฐ๋ก ํด์๋ ์ ์๊ฒ ์ต๋๋ค.
๋ถ๋ช
ํ๊ฒ ๋ง์ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
>์์ ์ ์ ๋ก ์ธํด ๋ค์ ์๋๋ฌ์ด ์ผ์ด
๋ค์ ์๋๋ฌ์ด ์ ๋๋ ์ด๋ ์ ๋๊ฐ ๋์ด์ผ ๋ค์ ์๋๋ฌ์ด ๊ฒ์
๋๊น?
๊ทธ๊ฒ์ ๊ธฐ์ ์ ์ธ ์ฉ์ด๋ก์จ ๋ถ์ ํํ ๋ชจํธํ ํํ์ผ๋ก์จ implementation dependentํ
๊ฒ์
๋๋ค.
>ํ์ค์ ์ค์์ฑ์ ๊ทธ๋ ๊ฒ ์ญ์คํ์๋ ("๊ฐ์ธ์ ์ธ ๊ฐ์ ๋ฌธ์ ์ ํ์ค์ ๋์ฌ๋ค์ด์ง
>๋ง๋ผ" ๊ณ ํํํ์
จ์์ฃ ?) ๋ถ๋ ๊ฒฐ๊ตญ ๊ฐ์ ์ ์น์ฐ์น ๊ธ๋ก ์ฐ๋ ๋๋ฅผ ๋ณด๊ธฐ์ข๊ฒ
>๋ง๋ฌด๋ฆฌ ํ์๋๊ตฐ์.
์์์ ๋งํ๋ค ์ํผ ์ด๊ฒ์ ๋์ ํผํด๋ง์์ ๊ธฐ์ธํ ์์์ ํด์์ด๋ฉฐ ์ง์ ๋งํ
์ฅ๋ณธ์ธ์ธ ์ ๋ ๊ฐ์ ์ ์ค์ด์ ๋์ ๊ฐ์ด์ ๋น์๋ฅผ ๊ผฝ๊ธฐ ์ํ ๋น๊ฑด์ค์ ์ด๊ณ
์
์์ ์ธ ํฌ์คํ
์ ์๋ํ ๊ฒ์ด ์๋ ์ ์ ์์์ ์ธ ๊ด์ ์์ ๋์ ์๋ชป๋ ์ ์
์ง์ ํ๊ณ ์ ํ ์ถฉ๊ณ ์์ต๋๋ค. ์ฃผ์ ๋์ ์ถฉ๊ณ ๊ฐ ์ด๋ฐ์ผ์
จ๋ค๋ฉด ๊ทธ๋ ๋ค๊ณ ๋ง์
ํด์ฃผ์ธ์. ๋น๋น ๋๋ ค์ ๋ง์์ ํ์๋ฉด ํํ ์ ๋ฌ ๊ณผ์ ์์ ์ฌ๋ฌ๊ฐ์ง ํด์์ด(์คํด๊ฐ)
๋์ฌ์ ์๊ฒ ์ต๋๋ค.
>์, ์ ๊ฐ ์๋ชปํ์ต๋๋ค.
constant pointer๋ ๊ฒ์ด ์๋ค๊ณ ๋ง์ํ์ จ์ผ๋ ์๋ชปํ์ ๊ฒ์ ๋๋ค.
>๊ธฐ์ ์ ์ธ ๋ด์ฉ์ด๋ผ๋ฉด ๋ ๋ฌผ๊ณ ๋์ด์ง์ ๋ ์ข์ต๋๋ค.
์ฌ์ค ๊ธฐ์ ์ ์ธ ๋ด์ฉ๋ถํฐ ํ ๋ก ๋ฐฉ์๊น์ง ๋ฌผ๊ณ ๋์ด ์ง๊ณ ์ถ์ ๊ฒ์ ์ฐ๋๋ฏธ์
๋๋ค.
๊ทผ๋ฐ ๋ฌธ์ ๋ ์ฐ๋๋ฏธ๋ผ๋ ๊ฒ์
๋๋ค. ํ๋๊ฐ์ง๋ผ๋ฉด์ผ ๋๊น์ง ๋ฌผ๊ณ ๋์ด์ง๊ฒ ์ต๋๋ค๋ง
๋์ ๊ธธ๋ค๋ ๊ธ์๋ ์์ฃผ์์ฃผ ์๋ง์ ๋ฒ๊ทธ๋ค์ด ์๋ต๋๋ค.
์ ๊ฐ ๋ง์๋๋ ธ๋๊ฒ ์ฒ๋ผ ๋จ์ ๋ชฐ์ ๋ถ์น๋ ๋ฐฉ์์ผ๋ก ์์ ์ ๊ธ์ ๋๋์ ๋ณธ๋ค๋ฉด
์ ์ ์ฃผ์ ๋์ ๋ด์ง๋ณด๋ค ํจ์ฌ ์ ๊ตํ ํํฐ๋ก์จ ์ฃ๋ค ์ฐพ์์ ์์ ๊ฒ์ด๋ผ
ํ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํฌ๋ชจ์ด ๋จ๊ณ๋ ์ง๋์ ๊ฒ ๊ฐ์๋ฐ ์ํผ์คํธ๋ค์ด๋ ํ ๋ฒํ
ํ ๋ก ์ ๋๋ ํผํ์
์ผ์ฃ .
>๊ทธ๊ฒ์ ๋ช
ํํ ์๋ฏธ์ ๋ํ ํ์ค์ผ๋ก์์ ๊ฐ์ ๋ ฅ์ informative part ์ด๊ธฐ
>๋๋ฌธ์ ์ ํ ๋ณ๊ฐ์ ๋ฌธ์ ๋ผ๋ ์ฃผ์ฅ์ ํ ๊ฒ๋ฟ์
๋๋ค.
๋ฌด์๊ณผ ์ ํ ๋ณ๊ฐ์ ๋ฌธ์ ๋ผ๊ณ ๋ง์ํ์๋์ง ๋ถ์ ํํ ๋ฌธ์ฅ์ด ๋๊ฒ ์ต๋๋ค.
(์ง๊ธ ์๋นํ ์ง์ฆ์ด ๋์๋ฆฌ๋ผ๊ณ ์๊ฐ๋์ด ์ง๋๋ฐ ์ด๋ฐ๊ฒ๋ค์ด ๋ฐ๋ก ๋์ด
๋ค๋ฅธ ๋ถ๋ค๋ก ๋ถํฐ ๊ฐ์ ์ ์ฌ๋ ์ด์ ์ค์ ํ๋ ์
๋๋ค. ์ด๊ฒ์ผ๋ก ๋์
ํ๋ด๋ ๋ง์น๊ฒ ์ผ๋ฉฐ ์ ์ ์๊ฐ์ ๊ณ์ ์ด์ด ๋๊ฐ๊น ํฉ๋๋ค.)
์ฉ์ด๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ ๋ ฅ์ ๋ฐ์ง๋ค๋ ์ด๊ฒ์ ๋ ๋ฌด์จ ๋ง์ธ๊ฐ์? ์ด๋ป๊ฒ ์๊ธด๊ฒ์
์ด๋ป๊ฒ ๋ถ๋ฅผ๊ฒ์ด๋ค. ํ์ค์์๋ ๊ทธ๊ฒ์ด ์ด๋ ๊ฒ ์๊ธด๊ฒ์ด๋ค ๋ผ๊ณ ํ๊ณ ์์ง์.
๊ทธ๊ฒ์ ์ด๋ ๊ฒ ๋ถ๋ฅด๋ ์ ๋ ๊ฒ ๋ถ๋ฅด๋ ์๋๋ฉด ์ ์ํ์ฒ ํ์ค์์ ์ค๋ช
ํ๋๋ฐ๋ก
๋ถ๋ฅด๋ ๋ป๋ง ํตํ๋ฉด ๋ฉ๋๋ค. ์ฉ์ด๋ผ๋ ๊ฒ์ ๋ณธ์ง์ ํจ ์๊ฐํด ๋ณด์๊ธธ ๋ฐ๋๋๋ค.
>๋๋ ์ ์ฃผ์ฅ์ด ๋ฌด์์ธ์ง ์์๋ฆฌ๋ผ ๋ฏฟ์์ต๋๋ค.
๋์ ์ฃผ์ฅ์ด ๋ญ์ง๋ ์๊ณ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ง์ ํด์ฃผ๊ณ ์ถ์ ๊ฒ์ ์ค์๋ ์๋ชป์ด๋
๋ญ๋ ํ๋ค๋ฉด ํ์คํ๊ฒ ์ธ์ ์ ํ๋ ๊ฒ์ด ์ข๋ค๋ ๊ฒ์ด์ง์. ๋ด๊ฐ ์ค์๋ฅผ ํ๊ธด ํ๋๋ฐ
์๋ฐํ๊ฒ ๋งํ๋ฉด ์ค์๊ฐ ์๋๋ผ๋ ์์ผ๋ก ๋ง์์ ํ์๋ ๊ฒ์ ์ญ์ ์ฃผ๋ณ๋ถ๋ค๋ก
๋ถํฐ ๊ฐ์ ์ ๋ถ๋ฌ ์ผ์ผํฌ๋งํ ๊ฒ์ด ๋๊ฒ ์ต๋๋ค.
>๋์ ์ฃผ์ฅ์ด ๊ทธ๋งํผ ๊ธฐ์ ์ ์ผ๋ก ์ ๋นํ ๊ฒ์ด๋ผ๋ฉด ์ ๋ฅ ํผํ๋ฏ ๊ฐ์ ์ ์ธ ๊ธ 2๊ฐ๋ฅผ
>ํฌ์คํ ํ์๋ฉฐ ๋์ด์์ ๋ ผ์๋ฅผ ํผํ์๋ ๊ฒ์ธ์ง ๊ถ๊ธํ๊ตฐ์.
์ ๊ฐ ๋์ ํํ๋๋ก ๋์ด์์ ๋
ผ์๋ฅผ ํผํ๋ ๊ฒ์ ๋น๊ฑด์ค์ ์ด๊ณ ๋ถํ์ํ
์๋ชจ์ ์ธ ํ ๋ก ์ ํผํ๊ณ ์ ํจ์
๋๋ค. ์ด์ ์ ๋ถ๋ช
ํ ์์์ฃผ์
จ์ผ๋ฉด ์ข๊ฒ ์ผ๋ฉฐ
๊ทธ๋ฆฌ๊ณ ์ ๋ ์ปดํ์ผ๋ฌ ์ ์์๋ ์๋๊ณ ์ค์ํ์ง๋ ์์ ๋ฌธ์ ๋ก ( ๋ฌผ๋ก ๋์๊ฒ๋
์ค์ํ ๋ฌธ์ ์ผ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค๋ง)
๋ค๋ฅธ ํ ์ผ์ ์ ๊ปด๋๊ณ ํ์ค๋ฌธ์ ๋ณด๋๋ฐ ๋๋ฌด ๋ง์ ์๊ฐ ํฌ์๋ฅผ ํ๋๊ฒ์
ํผํ๊ธฐ ์ํด์ ์
๋๋ค. ์์์ ๋งํ๋๊ฒ ์ฒ๋ผ ๋์ด ๋จ์๊ฒ ์ ์ฉํ์๋ ํํฐ๋ฅผ
์์ ์ ๊ธ์ ์ ์ฉํ์ ๋ค๋ฉด ๊ทธ ๋๊ตฌ์ ์ง์ ๋ณด๋ค ํ๋ฅญํ๊ฒ ์์ ์ ๋ฒ๊ทธ๋ฅผ ์ฐพ๊ณ
์ง์์ ์์ฑ๋๋ฅผ ๋์ผ์ ์์ง ์์๊น ์ถ๊ตฐ์.
>์ ๊ฐ comp.std.c ๋ฅผ ์ธ๊ธํ ์ด์ ๋ ๊ทธ๊ณณ์ ๊ณ์ ๋ถ๋ค์ด, (์ ๋ฅผ ํฌํจํด) ์ด
>๊ณณ์ ๊ณ์ ๋๋ถ๋ถ์ ๋ถ๋ค๋ณด๋ค ํ์ค์ ๋ํด์ ์ฌ๋ฐ๋ฅธ ํด์์ ํ ์ ์๊ธฐ ๋
>๋ฌธ์ ๋๋ค(์ต์ํ ์ฌ๋ฐ๋ฅธ ํด์์ ๋ด๋ฆด ๊ฐ๋ฅ์ฑ์ ๋ ํฌ๋ฉฐ, ๋ช๋ช ๋ถ์ ์ค์
>ํ์คํ ์์
์ ์ฐธ์ฌํ๊ณ ์๋ ๋ถ๋ค์
๋๋ค)
comp.std.c์ ๊ถ์๋ฅผ ๋ถ์ ํ๊ณ ์ ์ด๋ฐ ๊ธ์ ์ด๊ฒ์ด ์๋๋ฉฐ ์ ์ญ์ ์ํค๋๋ค์ด
์์์๋ค๋ ๊ฒ์ ์ธ์ ํ๊ณ ์์ต๋๋ค. ๋ค๋ง ์ ๊ฐ ์ด ๋ถ๋ถ์ ์ด ์ด์ ๋
์ด๋ค ๊ทผ๊ฑฐ๋ก์จ ๊ทธ๋๋ค์ ๋ง์ ์ง์ ์ธ์ฉํ๊ณ ๊ทธ๋์ ์ด๋ ๋ค๋ ๊ฒ์ ์์ง๋์ด๋ก์จ
๋ด๊ฐ ๋๋จํ ์ ๊ตญ์๋ ์๋์ง๋ง ์ธ๊ตญ๋์ ๋นํด์ ๋ชปํ๋ค๋ ๊ฒ์
์ธ์ ํ๋ ๋ถ๋ถ์ด๊ธฐ์ ์์กด์ฌ ์ฐจ์์์ ์ง์ ํ ๊ฒ์
๋๋ค.
๊ทธ ๋๋ค์ด ๋ง์ด ํ๋จํ๋๋ฐ ๋์์ด ๋ ์ ์์์ง ๋ชฐ๋ผ๋ ๊ธฐ์ค์ผ๋ก์จ
์ฌ์ฉ๋์ด์ ์ ๋ ๊ฒ์
๋๋ค.
>์ ๋ ๋์ ๋ชฐ์๋ถ์ด์ง ์์์ต๋๋ค. ์์ ์ด ์๋ชป ์๊ณ ์๋ ๋ถ๋ถ์ ์ง์ ๋ฐ์ผ
>๋ฉด ์๋๋ฐฉ์ด ์์ ์ ๋ชฐ์ ๋ถ์ฌ๊ฐ๋ฉฐ ๊ณต๊ฒฉํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ ์กฐ๊ธ
>์๋ชป๋์๋ค๊ณ ์๊ฐํ์ง ์์ผ์ญ๋๊น?
์ด ๋ถ๋ถ์ ๋ณด์ค๋ ์ด๋๊ฐ ์ฐ๋ฆผ์ ๋นํ๋ ๊ฒ ๊ฐ๋ค๋ ๋๋์ ์๋์ญ๋๊น? ;)
>์ ๊ฐ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ ์ ๋ํ๋์? (์ ๊ฐ ์ ๋ ๋ฏธ์ฌ์ผ์ด๋ผ๋
>๋ฉ๋๊น? ์ฐ๋ ~)
์ด ๋ถ๋ถ์ ์ดํดํ๊ณ ์ถ๋ค๋ฉด ๋ค์ 1๋ฒ ๋ผ์ธ์ผ๋ก jmp ํ์๊ธธ ๋ฐ๋๋๋ค.
>๋๊ป์ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ ์ด ์ํ์ ๋ค๊ณ ์ด๋ฐ ์์ผ๋ก ์ค๋ ์ด
>๋ฃจ์ด์ง ํ ๋ก ์ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ผ๋ก ๋งค๋ํ์๋ ๊ฒ์ ์ณ์ง ์๋ค
>๊ณ ์๊ฐํฉ๋๋ค.
์ ๊ฐ์ธ์ ๊ฐ์ ์ด ์ํด์ ์ด๋ฐ ์์ผ๋ก ์ค๋ ์ด๋ฃจ์ด์ง ํ ๋ก ์ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ
ํ ๋ก ์ผ๋ก ๋งค๋ํ๋ ๊ฒ์ด์๋๋ฉฐ ์ค์ ๊ทธ๋ ๊ฒ ๋งค๋ ํ์ง๋ ์์์ผ๋ฉฐ
๋์ ์๋ชป๋ ๋ถ๋ถ์ ์ง์ ํ ๊ฒ์
๋๋ค.
>์ค์์ฑ์ ์ญ์คํ์๋ ํ์ค๋, ๊ฒฐ๊ตญ ์ ์ ์ํด ๋
ผ์๊ฐ ์ด๋ฃจ์ด์ง๊ณ , ๋์ ๊ธฐ
>๋ถ์ ์ํ๊ฒ ํ๋ค๋ฉด ๊ฒฐ๊ตญ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ด ๋๋ ๊ฒ์ด๊ตฐ์.
์ค์์ฑ์ ์ญ์คํ์๋ ํ์ค๋ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ด ๋๋ ๊ฒ์ด๊ตฐ์๋
illegal syntax์
๋๋ค.
>์ ๋ ๋ถ์ ํ๊ณ ์ฒ์ฑ์ด ๊ฒ์๋ฌ์ ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์
>์ข์ํ๋ต๋๋ค
์ธ์ ํ์๋ ๋คํ์ ๋๋ค. ์ด๋ ๊ฒ๋ง ์ธ์ ํ ์ค ์๋ค๋ฉด ๋ฌธ์ ๋ ์์๊ฒ์ ๋๋ค. :))
>comp.std.c ์๋ ๊ทธ๋ฐ ํ ๋ก ์ ์ข์ํ๋ ๋ถ์ด ๋ง์ด ๊ณ์์ ์
>๋ก์๋ ๋คํ์ค๋ฝ๊ฒ ์๊ฐํ๊ณ ์์ต๋๋ค. ^^
๊ตญ๊ฐ์ ์ผ๋ก๋ ๋คํ์ด๊ตฐ์. ์ํค๋๋ค์ด ๋น๊ฑด์ค์ ์ด๊ณ ์๋ชจ์ ์ธ ํ ๋ก ์ ํ๋๋์
์ฐ๋ฆฌ๋๋ผ๊ฐ ๋ฐ์ ํ ์ ์์ํ
๋ ;)
>๊ทธ๋ผ...
๊ทธ๋ผ...
>p.s. ๊ทธ๋๋ ๋คํ์ค๋ฝ๊ฒ ์ด๋ฒ์๋ ์ต๋ช
์ผ๋ก ์๋จน์ง๋ ์์๋ค์. ๋ ์๋จน๊ธฐ
> ์ ์ ์กฐ์ฉํ ์ฌ๋ผ์ ธ์ผ์ง์.
p.s. ์์ ๋จน์๋ค๋ฉด ์ ์์ ๋จน์๋์ง ๋ ๋ญ๋ผ๊ณ ์์ ๋จน์๋์ง ์ ์๊ฐํด ๋ณด๋
๊ฒ์ด ํ์ํ์ฃ . ์ธ์์ ํผ์ ์ฌ๋ ๊ฒ์ด ์๋๋. ๋จ์ ๋ฐฐํ์ ์ผ๋ก ๋ํ๋๊ฒ์
๋จ์ด ์์ ์ ๋ฐฐํ์ ์ผ๋ก ๋ํ๋๋ก ๋ง๋ค๋ฟ์
๋๋ค.
........................open your mind.........................
์์ ์ ๋ค์ ์๋๋ฌ์ด ์ผ์ด ์์์ ๋ (๊ธ์์, ์ผ๋ง๋ ์๋๋ฌ์์ผ ๋ค์ ์
๋๋ฌ์ด ๊ฒ์ผ๊น์? ์ ๋ ๋ชจ๋ฅด๊ฒ ๋ค์ ^^), ๋ง์ ๋ถ๋ค์ด ์ ๊ฒ ์ข์ ์ถฉ๊ณ , ๊ฒฉ๋ ค,
๋นํ์ ๋ง์์ ํด์ฃผ์
จ์ต๋๋ค. ๊ทธ ๋ถ์ค์ ํ ๋ถ์ด ์ธ๋ฐ์๋ ๋ง์ ์กฐ์ฉํ ๋ฌด
์ํ๋ ๊ฒ๋ ์์ ์ ์งํค๋ฉฐ ์ด์๊ฐ๋ ์ค์ํ ๋ฐฉ๋ฒ์ด ๋ ์ ์๋ค๊ณ ๋ง์ํด ์ฃผ
์
จ์ต๋๋ค. ์ด์ ์ ๋ ๊ทธ ๋ถ์ ์์คํ ์ถฉ๊ณ ๋ฅผ ๋ฐ์๋ค์ฌ ํ๋ํด์ผ๊ฒ ์ต๋๋ค.
๋ช์ผ ํ, ํน์ ๋ช๋
ํ ๋์ด ์กฐ๊ธ ๋ ์๊ฐ์ด ์ปค์ง์ ๋ค๋ฉด ์ง๊ธ ์ด ๊ธ์ ๋ํด
๋งค์ฐ ๋ถ๋๋ฝ๊ฒ ์๊ฐํ ๊ฒ์
๋๋ค.
๋์ด ์๋ฌด๋ฆฌ ๊ทธ๊ฑด ์๋๋ผ๊ณ ์๋ฆฌ์น๊ณ ๋ถ์ ํด๋, ์ฌ์ค์ ๋ณํ์ง ์์ต๋๋ค.
๊ณ์ ์๋ฆฌ์น๋ค ์ง์น๋ฉด ์๊ฐ์ด ๋ฐ๋์๋ ๊ฐ, ์๋๋ฉด ๊ฒฐ๊ตญ ๋ฉ์๋ฆฌ๋ง ์ธ๋ฆฌ๋ ์
์ ์ ๋ฒฝ์ ๊ฐํ๊ฒ ๋ ๋ฟ์ด์ฃ .
๋ค๋ฅธ ๊ธ ๊ฐ์์ผ๋ฉด ๋์ ์ค๋ํ๊ธฐ ์ํด ๋งค ๋ถ๋ถ๋ง๋ค ๋ต๋ณ์ ๋ฌ์๊ฒ ์ง๋ง, ์ด๋ฒ
๊ธ์ ๊ทธ๋ ๊ณ ์ถ์ ์๊ฐ์กฐ์ฐจ ๋ค์ง ์๋ ๊ธ์
๋๋ค. ๊ณ์ํด์ ์ ๊ฒ ๋ง์ํ๊ณ ์ถ
์ผ์ ๊ฒ ์๋ค๋ ๊ฐ, ์์ ํ๊ณ ์ถ์ผ์๋ฉด ๊ฐ์ธ๋ฉ์ผ๋ก ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๋์ด์
๋ค๋ฅธ ๋ถ๋ค๊ป ๋ถ๋๋ฌ์ด ๋ชจ์ต ๋ณด์ด์ง ์๋ ๊ฒ์ด ๋์ ์ํด ์ข์๊ฑฐ๋ผ ์๊ฐ๋ฉ๋
๋ค.
๊ทธ๋ผ...
>๋์ด ์๋ฌด๋ฆฌ ๊ทธ๊ฑด ์๋๋ผ๊ณ ์๋ฆฌ์น๊ณ ๋ถ์ ํด๋, ์ฌ์ค์ ๋ณํ์ง ์์ต๋๋ค.
>๊ณ์ ์๋ฆฌ์น๋ค ์ง์น๋ฉด ์๊ฐ์ด ๋ฐ๋์๋ ๊ฐ, ์๋๋ฉด ๊ฒฐ๊ตญ ๋ฉ์๋ฆฌ๋ง ์ธ๋ฆฌ๋ ์์ ์
>๋ฒฝ์ ๊ฐํ๊ฒ ๋ ๋ฟ์ด์ฃ .
๋ด๊ฐ ๋ญ ์๋ฆฌ์ณค์๋๋ผ.. ์๋.. ๋์ ๊ฒฝํ๋ด์ธ๊ฒ ๊ฐ์๋ฐ ์ ์ญ์ ๊ทธ๋ฐ๋๊ฐ
์์์ฃ . ๊ทธ๋ ๋ค๊ณ ์ข์ ํฐ์ง ์ธํ๋ฆฌ๋ฅผ ์น๊ณ ์ธ๊ณ ์ง์ ๋น ์ง์ง ์์๋ต๋๋ค.
>๋ค๋ฅธ ๊ธ ๊ฐ์์ผ๋ฉด ๋์ ์ค๋ํ๊ธฐ ์ํด ๋งค ๋ถ๋ถ๋ง๋ค ๋ต๋ณ์ ๋ฌ์๊ฒ ์ง๋ง, ์ด๋ฒ
>๊ธ์ ๊ทธ๋ ๊ณ ์ถ์ ์๊ฐ์กฐ์ฐจ ๋ค์ง ์๋ ๊ธ์
๋๋ค.
์ญ์ญํ๊ตฐ์.
>๋์ด์ ๋ค๋ฅธ ๋ถ๋ค๊ป ๋ถ๋๋ฌ์ด ๋ชจ์ต ๋ณด์ด์ง ์๋ ๊ฒ์ด ๋์ ์ํด ์ข์๊ฑฐ๋ผ
>์๊ฐ๋ฉ๋๋ค.
์ง์ง ๋ถ๋๋ฌ์์ '์ฒ'ํ๋ ๊ฒ์
๋๋ค. ๋ชฐ๋ผ๋ ์๋์ฒ, ๊ธฐ๋ฉด์ ์๋์ฒ, etc
๋ค๋ฅธ ๋ถ๋ค์ ํ๋จ์ ๋ค๋ฅธ ๋ถ๋ค๊ป ๋งก๊ฒจ์ฃผ์์ฃ .
$cat result.mind
//result.mind Written by LHC for mycoboco
//all right reserved
#include "mycoboco.mind"
a = lim(mind.close());
print(%d %c %s, a, a, a);
$./result.mind
0, . "๋ฐด๋์ด"
lhc_2001๋. ์ ์ฆ๋ท์์ ํ ๋ก ํด์ผ ํ ๋ด์ฉ์
ํ ๋ก ์์ ์ธ์ฑ์ด ์๋๋ผ ๊ธฐ์ ์ ์ธ ๋ด์ฉ ์๋๊น์?
๊ธฐ์ ์ ์ธ ๋ฉด์์ ์ฃผ์ฅํ ๊ฒ์ด ์์ผ๋ฉด ํ์ธ์.
๊ทธ๋ฐ ๊ฒ์ด ์๋ค๋ฉด ํ ๋ก ์ ์ ์ผ์๋ฉด ๋ฉ๋๋ค.
๋ง์ง๋ง์ ์ฐ์ ๊ธ์ ๋ณด๋ mycoboco๋์ ๋ฒค๋์ด
๋ผ๊ณ ๋ถ๋ฅด๊ณ ์ถ์ผ์
จ๋ ๋ชจ์์ธ๋ฐ, ๊ทธ๋ ๊ฒ ํด ๋ณด์
์ผ
์๊ธฐ ์ผ๊ตด์ ๋ฅ์น ํ๋ ๊ฒ ๋ฐ์ ์๋ฉ๋๋ค.
๋ค๋ฅธ ์ฌ๋์ด ์ด๋ป๊ฒ ์๊ฐํ ์ง ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋งก๊ฒจ
๋ฌ ๋ณด์๊ณ ํ์
จ๋๋ฐ, ์์งํ ๊ทธ๋ฐ ๋ฐ์์ ๋ค๋ฅธ
์ฌ๋๋ค์ด ๋ณธ๋ค๋ฉด ๋์ ์์ํ๊ฑฐ๋ ํ ์ฌ๋ ์๋ฌด๋
์์๊ฒ๋๋ค.
'์ฒ' ํ๋ค๋ ๊ฒ์ด๋ ์ด๋ฐ ๊ฒ์
๋๋ค.
๋ณ๋ก ์ฃผ์ฅํ ๊ฒ๋ ์์ผ๋ฉด์ ์ฃผ์ฅํ ๊ฒ์ด ๋ง์ ์
ํ์ธ๋ฅผ ๋ถ๋ฆฌ๋ ๊ฒ์ด์ฃ .
๋๊ฐ ํ์ธ๋ฅผ ๋ถ๋ฆฌ๊ณ ์๋์ง ์ ํ๋ฒ ์๊ฐํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
๊ธ์?? ๊ณผ์ฐ.. ์ฌ๋๋ง๋ค ๋ค ์ทจํฅ์ด ๋ค๋ฅธ๋ฐ
๊ทธ๋ฐ์์ผ๋ก ๋ค๋ฅธ ์ฌ๋๋ค์ ์๊ฐ๊น์ง
์์์ ์ผ๋ก ์์ ํด ๋ฒ๋ฆฌ๋๊ฑด ๋ฌธ์ ๊ฐ ์๋๊ฑฐ ๊ฐ์๋ฐ..
๋ ์ญ์ผ๋ก mycoboco๋์ ๊ธ์ ์ด ๊ทธ๋ฃน์ ์ค๋ ๋ชจ๋ ์ฌ๋๋ค์ด
์ฐฌ์ฑํ๋ค๋ ์๊ธฐ๋ ๋๋๋ฐ mycoboco๋๋ ๋ถ๋ช ํ
์ธ์ ๊ณต๊ฒฉ์ฑ ๋ฐ์ธ์ ๊ฐ๋ ํ๊ธด ํ๋๋ฐ..
์๋ญํผ ๋์ด์ ๋จ์ ๊ฐ์ ์ธ์์ ์ 3์๊ฐ ๋ผ์ฌ๋ค์ง ๋ง์๋ค..
๋์ด์ ๊ฐ์ธ๋ฉ์ผ๋ก ํ๋ ๋ง๋์ ๋ง์ฅ๋จ๋ ์์์ ํ๋ผ๊ณ ..
c, ์ปด๊ด๋ จ ์ง๋ฌธ๋ค์ด ์ด๋ฐ๋ฅ์ ๊ธ๋ค๋๋ฌธ์ ๋ฌปํ๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ
๋ง์ด ์๊ธฐ๋๊น์..
๊ทธ๋ฐ๋ฐ ๋ฉ์ผ ์ฃผ์๊ฐ ๋ฏ์ด ์ต๊ตฐ์.
ํ์ค ๊ด๋ จ ํ ๋ก ํ ๋ ๋ถ์ฅ ๋ํ๋์
mycoboco๋๊ป ์๊ฐ์ ๋ง ๋์ง๊ณ ์ฌ๋ผ์ง์ จ๋ ๋ถ์ด
์๋์ ์ง์?
๊ทธ๋น์ ๊ทธ ํฌ์คํ ๋๋ฌธ์ c, ๊ธฐ์ ๊ด๋ จ ํฌ์คํ ๋ค์ด
๊ฐ์ ์ธ์์ ๋ฌปํ๋ฒ๋ ธ๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํฉ๋๋ค๋ง...
๊ถ์ด ๊ฐ์กฐํ๋ ์ ์๊ฐ ๋ญ์ ? mycoboco๋์ ์๋ค๋ฐ๋ฆฌ์ฏค ๋์ผ?
>lhc_2001๋. ์ ์ฆ๋ท์์ ํ ๋ก ํด์ผ ํ ๋ด์ฉ์
>ํ ๋ก ์์ ์ธ์ฑ์ด ์๋๋ผ ๊ธฐ์ ์ ์ธ ๋ด์ฉ ์๋๊น์?
>๊ธฐ์ ์ ์ธ ๋ฉด์์ ์ฃผ์ฅํ ๊ฒ์ด ์์ผ๋ฉด ํ์ธ์.
>๊ทธ๋ฐ ๊ฒ์ด ์๋ค๋ฉด ํ ๋ก ์ ์ ์ผ์๋ฉด ๋ฉ๋๋ค.
์ฌ๋ ๋จ๋งํ์ ๋ง์๊ณ
>๋ง์ง๋ง์ ์ฐ์ ๊ธ์ ๋ณด๋ mycoboco๋์ ๋ฒค๋์ด
>๋ผ๊ณ ๋ถ๋ฅด๊ณ ์ถ์ผ์
จ๋ ๋ชจ์์ธ๋ฐ, ๊ทธ๋ ๊ฒ ํด ๋ณด์
์ผ
>์๊ธฐ ์ผ๊ตด์ ๋ฅ์น ํ๋ ๊ฒ ๋ฐ์ ์๋ฉ๋๋ค.
๋ฒค๋์ด๊ฐ ์๋๋ผ ๋ฐด๋์ด๋ผ ํ์์. ๊ตญ์ด ๊ณต๋ถ ์ง์ง๋ผ๊ฒ ๋ชปํ์
จ๊ตฌ๋ด.
๋ฐ์์ฐ๊ธฐ๋ถํฐ ๋ค์ ํ์. ๊ธ๊ณ ๋๋ ์๋๋ ์ฃผ์ ํ์
๋ชปํ๊ณ ๊ปด๋๋
๊ผด์ด ์ผ๊ตด์ ๋ฅ์น ํ์ฅํ๊ณ ๋ค๋๋ ๊ผด์ด๋ ์๊ฐ์ ์๋์ค?
>๋ค๋ฅธ ์ฌ๋์ด ์ด๋ป๊ฒ ์๊ฐํ ์ง ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋งก๊ฒจ
>๋ฌ ๋ณด์๊ณ ํ์
จ๋๋ฐ, ์์งํ ๊ทธ๋ฐ ๋ฐ์์ ๋ค๋ฅธ
>์ฌ๋๋ค์ด ๋ณธ๋ค๋ฉด ๋์ ์์ํ๊ฑฐ๋ ํ ์ฌ๋ ์๋ฌด๋
>์์๊ฒ๋๋ค.
๋์ ๋ด๊ฐ ์ฐ์์ธ์ผ๋ก ๋ณด์ด์? ๋น์ ๊ฐ์ ํ์๋ค์ด ๋ฌด์จ ๋ณํ์ค๋ฐ ์๊ฐ์
ํ๋ ๋ง๋ ๊ด์ฌ ์์์ด๋ค.
>์ฐธ ๊ทธ๋ฆฌ๊ณ ํ๊ฐ์ง ๋.
>'์ฒ' ํ๋ค๋ ๊ฒ์ด๋ ์ด๋ฐ ๊ฒ์
๋๋ค.
>๋ณ๋ก ์ฃผ์ฅํ ๊ฒ๋ ์์ผ๋ฉด์ ์ฃผ์ฅํ ๊ฒ์ด ๋ง์ ์
>ํ์ธ๋ฅผ ๋ถ๋ฆฌ๋ ๊ฒ์ด์ฃ .
>๋๊ฐ ํ์ธ๋ฅผ ๋ถ๋ฆฌ๊ณ ์๋์ง ์ ํ๋ฒ ์๊ฐํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ฃผ์ ํ์ ์ด๋ ํ์.
>๊ทธ๋ผ...
ํ ์ผ ์์ ๋ณํ์ฑํ ์ด๋ ํ์ผ. ๊ทธ๋ผ...
๊ทธ๋ผ.