Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[6984] Re:TURBO C++ 으로 컴파일을 하니 에러가 생깁니다.
[] 2560 읽음    2016-07-10 11:23
이문제는 비주얼C++가 터보C++보다 더 좋아서 라든지 터보C++가 나쁘거나 버그가 있다거나 해서 발생하는 문제가 아닙니다.
2013년의 최신컴파일러와 1994년의 컴파일러를 비교한다는 것은 스마트폰과 삐삐를 비교하는 것과 같은 차원입니다.
당연히 C언어도 94년당시는 ANSI-C라고하는 89년 표준이며 그이후로 C99, C11 등으로 변화하고 있습니다.

질문하신 것에서 발생하는 문법적 에러는 두가지가 문제입니다.

첫째는 BOOL이라는 형이 C의 기본 변수형이 아니라는 것입니다.
C에서는 참거짓을 어떻게 판단하는지 생각해보면 당연합니다.
하지만 다른 여러 고급(?)언어에서 당연히 있는 논리형이 없다는 것이 불편해서 개인적으로 True, False를 정의해서 쓰다가
나중에는 WinAPI에서도 정의하게되고 C++ STL에서도 정의하게되고 하다보니 "당연히 Header에 정의되어 있습니다.
마치 기본형인것처럼 느껴지게 될지도 모릅니다만 C언어에서는 결코 기본형이 아닙니다.
그래서 이 논리형의 이름도 BOOL, Bool, Boolean, boolean등등 대소문자가 서로 다른 여러가지 명칭이 사용되고 있습니다.
당연하죠 사용자 정의형이니까

VS2013에서는 BOOL이라는 형태의 정의를  기본적으로 해주는지는 모르겠습니다. 제가 안가지고 있어서...
VS2010에서는 console모드에 BOOL을 쓰면 error C2065: 'BOOL' : undeclared identifier라는 에러를 냅니다.

따라서 컴파일 하시려면 BOOL형을 스스로 정의해주셔야합니다.
다음처럼 하시면 될 듯합니다.

typedef enum {FALSE =0, TRUE =1} BOOL; // 이라인을 추가한다.

두번째문제는 구조체형의 변수를 선언할때 오류입니다.
구조체는 클래스가 아닙니다.
따라서 구조체변수를 선언할때는

struct 구조제명 변수명;

이렇게 하셔야합니다.

따라서
Signal S[MAX];  // 게 하신것을
struct Signal S[MAX]; // 이렇게 하시면됩니다.

또는 책에 자주등장하듯이.
struct Signal
{
//........
}  S[MAX];
이렇게 구조체 중괄호뒤에다 세미콜론없이  변수명을 붙여서 선언하셔도 됩니다.



+ -

관련 글 리스트
6982 TURBO C++ 으로 컴파일을 하니 에러가 생깁니다. goldrain 2610 2016/07/07
6984     Re:TURBO C++ 으로 컴파일을 하니 에러가 생깁니다. 2560 2016/07/10
6983     Re:TURBO C++ 으로 컴파일을 하니 에러가 생깁니다. Observer 2336 2016/07/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.