2005년 09월 19일
모 사이트에 올렸던 공대개그
stdio.h 라는 도시가 있었어요
그 도시안에 void main()이라는 마을에는 char가 살고있었습니다.
char는 기억력이 없어서 127까지밖에 기억해내질 못했습니다
그런데 어느날, void main()라는 마을에 int가 새로 이사를 왔어요
int는 char보다 훨씬 똑똑해서, 32767까지 기억을 할 수 있었어요
char는 분개해서 unsigned 이라는 성을 붙여서 다시 나타났습니다
하지만 0부터 255까지밖에 기억을 못하는 char는 그대로 자신을 복제시켰습니다
하지만 char이 둘로 불어나도 둘이합쳐 510이라는 숫자밖에 못만들어낸거있죠?
510이라는 숫자는 32767이라는 숫자앞에서는 어림도 없었답니다.
하지만 그것도 잠시뿐, long 역시 void main()에 새로 이사를 온겁니다
"후후. 너희들의 기억력은 나한테있어서 몇백배도 차이가 안나."
그 말대로 long는 2147483647이라는 엄청난 숫자를 기억하는거였어요
int는 너무 화가난 나머지, int는 32767보다 더 큰수를 기억하려고 온갖 노력을 했답니다.
그러나 이를 어째? int는 32767다음숫자를 항상 -32768로 기억하는거였어요
너무너무 화가나서 unsigned를 붙여서 왔지만 65535까지밖에 기억을 못하고 그대로 long에게 패배를 인정했죠
그리고 몇일 뒤, long의 새로운 적인 float과 double이 새로 이사를 왔어요
float는 3.4e-38의 음수와 3.4e+38의 양수, double는 1.7e-308부터 1.7e+308의 계산하기도 힘들정도의 어마어마한 기억력을 가지고 있었죠
char와 int, long는 새로온 float와 double를 어떻게든 이기려고 온갖노력을 했답니다
어느날 void main()마을에 이방인 printf와 scanf가 이들을 도와주러 나섰습니다.
"저녀석들에게 절대로 %f만 내주지않으면 돼. 너희들에게 필요한건 %d만으로 충분해."
그리고 과연 그 말대로 되었습니다. float과 double는 정수만 출력하는 %d앞에서 소수점은 쓰레기값이나 마찬가지였어요.
기어코 float와 double는 뒤에 소수점 몇자리가 없어서 발생한 나비효과로 인해 제구실을 못하게 되었답니다.
그러던 어느날, float는 long와 협상을 제의하러 왔습니다.
"이봐, long! 우리 이제 그만하게! 우리는 같은 4Byte 태생아닌가?"
그러나 그 말을 무시하고 long는 계속 %d만 계속 불러들이는 것이었습니다.
그리고 float는 long와 협상도 실패하고 double에게 핀잔만 받았습니다
"너만 살려고 long한테 몰래가냐? 치사한놈아! 나중에 큰 일이 일어날테니까 두고봐!!!"
단단히 화가 난 double는 옆마을에 간다는 말만 남겨놓고 어디론가 사라졌습니다.
발이 넓은 double는 어느샌가 stdlib.h와 time.h라는 도시에 random()과 randonize(), goto를 불러왔어요.
그리고 double는 void main()마을 입구쪽에 goto를 인식하는 장치와 마을 안에는 randomize();와 random(1.7e+308);를 설치했습니다.
그리고 변수들은 억지로 난수를 받게하고, 마지막으로 goto를 설치해서 어느쪽으로든 빠져나가지 못하게 막아버렸어요.
이러면서 stdio.h에는 자신이 원하지도 않는 쓰레기값들이 들어간 변수들이 대혼란을 일으키기 시작했답니다.
"어째서 내 몸에 이런게 들어가있는거야?"
"아아 미치겠다!!! 자꾸 다른값으로 바뀌잖아!!!"
이렇게 변수들은 아무 쓸모도 없는 쓰레기값들로 아우성을 질러댔습니다.
그러던 어느 날, stdio.h 에 이사올려던 if는 이렇게 무한히 반복되어 아수라장이 되어버린 stdio.h를 구하기 위해 또 다른 사용자 정의함수 void Bak(void)마을을 만들어서 구해주기로 했답니다.
if(모든변수 < sizeof(3.4e+38)){
Bak();}
else{
goto main;}
}
void Bak()
{
모든변수 = 0;
}
이렇게 if가 선언을 시작하자 모든 변수들은 3.4e+38보다 작으면 void Bak()마을에 이주가 가능하게 되었습니다.
하지만 3.4e+38의 기억력을 넘는 float와 double는 계속 goto문을 돌면서 끝없이 쓰레기값들과 함께 지내야 했습니다.
반면, long까지 새로운 마을에 이주하면서 정수들을 기억하는 변수들은 행복하게 잘 살았답니다.
-끝!!!-
p.s : 이 글 쓴다고 대략 1시간정도 소비해버렸군요...배고파 -_-;
-----
실제로 제가 쓴거랍니다 -_-
그 도시안에 void main()이라는 마을에는 char가 살고있었습니다.
char는 기억력이 없어서 127까지밖에 기억해내질 못했습니다
그런데 어느날, void main()라는 마을에 int가 새로 이사를 왔어요
int는 char보다 훨씬 똑똑해서, 32767까지 기억을 할 수 있었어요
char는 분개해서 unsigned 이라는 성을 붙여서 다시 나타났습니다
하지만 0부터 255까지밖에 기억을 못하는 char는 그대로 자신을 복제시켰습니다
하지만 char이 둘로 불어나도 둘이합쳐 510이라는 숫자밖에 못만들어낸거있죠?
510이라는 숫자는 32767이라는 숫자앞에서는 어림도 없었답니다.
하지만 그것도 잠시뿐, long 역시 void main()에 새로 이사를 온겁니다
"후후. 너희들의 기억력은 나한테있어서 몇백배도 차이가 안나."
그 말대로 long는 2147483647이라는 엄청난 숫자를 기억하는거였어요
int는 너무 화가난 나머지, int는 32767보다 더 큰수를 기억하려고 온갖 노력을 했답니다.
그러나 이를 어째? int는 32767다음숫자를 항상 -32768로 기억하는거였어요
너무너무 화가나서 unsigned를 붙여서 왔지만 65535까지밖에 기억을 못하고 그대로 long에게 패배를 인정했죠
그리고 몇일 뒤, long의 새로운 적인 float과 double이 새로 이사를 왔어요
float는 3.4e-38의 음수와 3.4e+38의 양수, double는 1.7e-308부터 1.7e+308의 계산하기도 힘들정도의 어마어마한 기억력을 가지고 있었죠
char와 int, long는 새로온 float와 double를 어떻게든 이기려고 온갖노력을 했답니다
어느날 void main()마을에 이방인 printf와 scanf가 이들을 도와주러 나섰습니다.
"저녀석들에게 절대로 %f만 내주지않으면 돼. 너희들에게 필요한건 %d만으로 충분해."
그리고 과연 그 말대로 되었습니다. float과 double는 정수만 출력하는 %d앞에서 소수점은 쓰레기값이나 마찬가지였어요.
기어코 float와 double는 뒤에 소수점 몇자리가 없어서 발생한 나비효과로 인해 제구실을 못하게 되었답니다.
그러던 어느날, float는 long와 협상을 제의하러 왔습니다.
"이봐, long! 우리 이제 그만하게! 우리는 같은 4Byte 태생아닌가?"
그러나 그 말을 무시하고 long는 계속 %d만 계속 불러들이는 것이었습니다.
그리고 float는 long와 협상도 실패하고 double에게 핀잔만 받았습니다
"너만 살려고 long한테 몰래가냐? 치사한놈아! 나중에 큰 일이 일어날테니까 두고봐!!!"
단단히 화가 난 double는 옆마을에 간다는 말만 남겨놓고 어디론가 사라졌습니다.
발이 넓은 double는 어느샌가 stdlib.h와 time.h라는 도시에 random()과 randonize(), goto를 불러왔어요.
그리고 double는 void main()마을 입구쪽에 goto를 인식하는 장치와 마을 안에는 randomize();와 random(1.7e+308);를 설치했습니다.
그리고 변수들은 억지로 난수를 받게하고, 마지막으로 goto를 설치해서 어느쪽으로든 빠져나가지 못하게 막아버렸어요.
이러면서 stdio.h에는 자신이 원하지도 않는 쓰레기값들이 들어간 변수들이 대혼란을 일으키기 시작했답니다.
"어째서 내 몸에 이런게 들어가있는거야?"
"아아 미치겠다!!! 자꾸 다른값으로 바뀌잖아!!!"
이렇게 변수들은 아무 쓸모도 없는 쓰레기값들로 아우성을 질러댔습니다.
그러던 어느 날, stdio.h 에 이사올려던 if는 이렇게 무한히 반복되어 아수라장이 되어버린 stdio.h를 구하기 위해 또 다른 사용자 정의함수 void Bak(void)마을을 만들어서 구해주기로 했답니다.
if(모든변수 < sizeof(3.4e+38)){
Bak();}
else{
goto main;}
}
void Bak()
{
모든변수 = 0;
}
이렇게 if가 선언을 시작하자 모든 변수들은 3.4e+38보다 작으면 void Bak()마을에 이주가 가능하게 되었습니다.
하지만 3.4e+38의 기억력을 넘는 float와 double는 계속 goto문을 돌면서 끝없이 쓰레기값들과 함께 지내야 했습니다.
반면, long까지 새로운 마을에 이주하면서 정수들을 기억하는 변수들은 행복하게 잘 살았답니다.
-끝!!!-
p.s : 이 글 쓴다고 대략 1시간정도 소비해버렸군요...배고파 -_-;
-----
실제로 제가 쓴거랍니다 -_-
# by | 2005/09/19 02:22 | 잡담 | 트랙백 | 덧글(4)




☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
폭소했습니다. 멋지십니다...