C++

2. Getting Started C++(2)

Kelvin의 게임개발 2023. 11. 21. 00:14
728x90
반응형

1. Error & Waring

 
대표적인 Compile Error에는 Syntax Error, Semantic Error가 존재한다

int main()
{
	std::cout << "Error << endl/;

	return 0 //이러한 오류(;이 없거나 스펠링이 틀리거나 return 타입이 다르거나 { }가 없거나 많거나 등등) 를 구문오류 Syntax Error라고 하고

	"Hello" + b; //ex) 이와 같은 의미상 에러를 Semantic Error라고 한다 
}

Compile Error 여러개가 발생했다면 첫번째부터 수정해보자 자연스럽게 다른 에러가 처리될 확률이 높다
 
Compile Warning은 프로그램이 동작하지만 잠재적으로 문제가 될 수 있음을 알려준다 무시하지 말 것

int main()
{

	int TempValue; //컴파일러에 따라 차이가 있지만 이는 초기화 되지 않은 변수이기 때문에 Unitialized Compile Warning을 출력하게 된다

	std::cout << "TempValue" << std::endl;

	return 0;
}

 

int main()
{

	int TempValue;

	TempValue = 100;

	std::cout << "Hello" << std::endl; //변수를 선언/할당 후 사용하지 않으면 not used Compile Warning을 출력한다

	return 0;
}

 
Link Error는 Obj File이나 Library File을 Linker가 찾지 못했을 때 발생한다

extern int X; // extern 키워드는 다른 파일에서 이미 이름이 같은 전역변수가 선언이 되었다는 의미. 즉, 다른 파일간의 변수를 공유하고 있다라는 뜻이다 -> 이 정보를 컴파일러에 전달 후 main.obj, header.obj를 링킹한다
//전역변수가 외부에 있다고 표시만하고 선언이 된건 아니기 때문에 실제 정의된 부분을 찾지 못해 LinkError가 발생한다 (컴파일은 되고 실질적으로 Link단계에서만 에러가 발생한다)

int main()
{
	std::cout << X; //LinkError 발생

	return 0;
}

 
Runtime Error는 프로그램 실행중에 발생하는 error이다 (크래쉬 발생 가능) ex) 0으로 나누기, 메모리 문제, nullptr 참조 등

728x90
반응형

'C++' 카테고리의 다른 글

6. Operators (연산자)  (131) 2023.12.12
5. Array And Vector  (202) 2023.12.09
4. Variables and Constants  (110) 2023.12.07
3. Structure of a C++ Program  (2) 2023.11.22
1. Getting Started C++(1)  (4) 2023.11.17