|
기본적으로 문제없이 컴파일 되어야합니다.
표준에 맞게 컴파일러가 구현되지 않았기 때문입니다.
Visual C++ 6.0 이하의 경우 저런것 뿐만 아니라 자잘한 문법적 제약이 조금 다르기도합니다.
(패치하면 이문제인지는 몰라도 몇가지 개선되기는 합니다.)
하지만 7.0에 와서는 많이 개선되어 별 문제 없습니다.
Turbo C의 경우는 옛날 컴파일러이기에 구현상 부족한 것 같습니다.
앙탈쟁이 님이 쓰신 글 :
: #include<stdio.h>
: #include<conio.h>
: void main()
: {
: int su[5],max=0;
: clrscr();
:
: for (int a=0;a<5 ; a++)
: {
: printf("%d 번째수를 입력",a+1);
: scanf("%d",&su[a]);
: printf("su[%d]에 %d가 입력되었습니다\n",a,su[a]);
: }
:
: for (int a=0;a<5 ;a++ )
: {
: if (max<su[a])
: max = su[a];
: }
:
: printf("\n입력된 값중 최대값은 %d 입니다.",max);
: }
:
: 여기 구문에서 보면 두번째 for문에서 a값의 자료형을 또 한번(첫번째 for문에서 이미1번 선언했으므로) 선언하는데
: 제가 에디트 플러스에 볼랜드 5.5를 연동해서 하고 있는데 저렇게 하면 실행이 되는데 다른
: 터보C나 비쥬얼C에서는 저렇게 두번 선언을 하면 오류가 나오더군요. 한번만 선언해야 잘되구요
: 컴파일러의 차이인가요?
: C는 그럼 컴파일에 따라서 구문의 방식이 조금씩 다른건가요?
: 아시는 분은 답변을 부탁드립니다.
|