#include <stdio.h> int end; int main() { printf( "%d\n", end ); return 0; }
컴파일 하고 실행하면 프로그램이 죽는군요. 변수명으로 end 사용하면 안되나요?
#include <stdio.h> #include <stdlib.h> // <-- int end; int main() { end = 20; // <-- printf( "%d\n", end ); system("pause"); //<-- return 0; }
이렇게 한번 해보시죠.. MinGW 에서 해보지는 않았구요. 20이 나오면 변수로 사용 가능하지 않나요?
Dev-Cpp에서는 20이 출력이 되던 걸요..^^;
P.S : end에 아무 값도 주지 않으면 0이 출력되더군요.
kldp.net 에 많은 프로그래머들이 동참하기를 바라며...^^
당연히 0이 나와야 하는데 컴파일은 잘 되고 실행하면 죽습니다. end를 endi로 바꿔줬더니 잘 되네요.
아무래도 제가 사용하는 MinGW 버전에 문제가 있는듯 싶습니다. 리눅스, AIX, 윈도우즈에서 각각 다른 버전의 컴파일러로 돌려봤는데 윈도우즈에서만 문제가 생기네요.
gcc version 3.2.3 (mingw special 20030504-1) 입니다.
음 ..이상하군요.
mingw-msys에서 해봤는데 0 잘 나오는데요?
변수명이 end이던 endi이던 상관이 없는건데. 버그인가?
근데 그걸 떠나서 변수를 초기화 하지 않고 사용하는것은 위험한 사용이라고 생각합니다.
int end = 0;
으로 하고서 한번 더 해보시죠?
end가 보통 default linker script에서
프로그램 데이터의 마지막을 나타내는 변수로
정의되는데 아마 이것과 꼬여서(?) 그런것 같습니다.
저도 gcc 3.2.3을 쓰는데 똑같은 현상이 발생합니다. 컴파일러의 버그로 보이네요. 그런데 산하님 말씀대로 명시적으로 초기치를 주면 잘 됩니다. 희한하군요.
정말 그렇군요. 초기값을 설정하니까 잘 되네요..^^;
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
MinGW에서... 전역변수명으로 end 사용시에..
이렇게 한번 해보시죠..
MinGW 에서 해보지는 않았구요.
20이 나오면 변수로 사용 가능하지 않나요?
Dev-Cpp에서는 20이 출력이 되던 걸요..^^;
P.S : end에 아무 값도 주지 않으면 0이 출력되더군요.
kldp.net 에 많은 프로그래머들이 동참하기를 바라며...^^
당연히 0이 나와야 하는데컴파일은 잘 되고 실행하면 죽습니다.en
당연히 0이 나와야 하는데
컴파일은 잘 되고 실행하면 죽습니다.
end를 endi로 바꿔줬더니 잘 되네요.
아무래도 제가 사용하는 MinGW 버전에 문제가 있는듯 싶습니다.
리눅스, AIX, 윈도우즈에서 각각 다른 버전의 컴파일러로 돌려봤는데
윈도우즈에서만 문제가 생기네요.
gcc version 3.2.3 (mingw special 20030504-1) 입니다.
음 ..이상하군요.mingw-msys에서 해봤는데 0 잘 나오는데
음 ..이상하군요.
mingw-msys에서 해봤는데 0 잘 나오는데요?
변수명이 end이던 endi이던 상관이 없는건데. 버그인가?
근데 그걸 떠나서 변수를 초기화 하지 않고 사용하는것은 위험한 사용이라고 생각합니다.
int end = 0;
으로 하고서 한번 더 해보시죠?
end가 보통 default linker script에서프로그램
end가 보통 default linker script에서
프로그램 데이터의 마지막을 나타내는 변수로
정의되는데 아마 이것과 꼬여서(?) 그런것 같습니다.
저도 gcc 3.2.3을 쓰는데 똑같은 현상이 발생합니다. 컴파일러의 버
저도 gcc 3.2.3을 쓰는데 똑같은 현상이 발생합니다. 컴파일러의 버그로 보이네요.
그런데 산하님 말씀대로 명시적으로 초기치를 주면 잘 됩니다. 희한하군요.
정말 그렇군요.초기값을 설정하니까 잘 되네요..^^;
정말 그렇군요.
초기값을 설정하니까 잘 되네요..^^;
댓글 달기