문법오류는 개발환경이나 컴파일러의 도움을 통해 쉽게 찾을 수 있으나 문맥오류는 컴퓨터가 구분 할 수 없어 직접 찾아야 하기 때문에 더 어렵다. 테스트를 할 때 문맥오류가 있을 경우 그것을 알려 줄 수 있는 예제인지, 실험이 제대로 되었는지는 스스로가 생각해야 한다.
#include <stdio.h>
int main()
{
int n1, n2, n3, n4;
n5 = 3;
n1 = 1;
n2 = n1 * n1;
n3 = n2 * n1;
n4 = n2 * n1;
return 0;
}
문법 오류(syntax error)
n5 = 3;
- 비주얼스튜디오 개발환경에서 잡아주는 법 : 빨간물결표시
코드 입력창에서 n5 = 3; 부분에 빨간물결표시로 확인가능
- 컴파일러가 문법 문제가 있다고 인식 못하는 경우 : Build Solution(단축키 : Ctrl +F7) 후 Output창에서 error 확인.
실행시키지 못하는 이유로 'n : undeclared idntifier' 이런 오류가 났다고 알려준다.
두 오류 내용이 같게 나오는게 일반적이지만 다르게 나오는 경우도 있다.
문법오류는 컴파일러가 인식을 못해서 컴파일러로 잡는 방법이 오히려 쉽게 오류 수정이 가능하다.
문맥 오류(semantic error)
n4 = n2 * n1; (n의 n제곱 구하는게 목표인 코드에서 문맥 오류 부분)
- 컴파일러는 문맥오류를 잡아 주기 힘들다. 그래서 디버그를 통해 오류를 찾아야 한다.
간단한 코드나 남의 쓴 코드는 문맥 오류가 쉽게 보이기도 하나 복잡한 코드나 내가 맞다고 생각하고 쓴 코드에서는 문맥 오류를 잡기가 어렵다.
- 문맥 오류 잡는 방법 : 테스트(좋은 test sample 만들기)
n1 = 1로 잡고 디버그 할 경우 n4의 값이 1이기 때문에 결과가 제대로 나왔는지 구분하기 힘들다.
n1 = 2로 잡고 디버그 할 경우 n4의 값이 16이 아닌 8로 나와서 이 부분이 오류라는 것을 알 수 있다.
'프로그래밍언어 > C언어' 카테고리의 다른 글
[C language] 데이터와 자료형 (0) | 2020.11.22 |
---|---|
[C language] 읽기 좋은 코드를 만드는 요령 (0) | 2020.11.20 |
[C language] 디버거 사용법 (0) | 2020.11.20 |
[C language] 함수 만들기 (0) | 2020.11.20 |
[C language] 주석 다는 방법 (0) | 2020.11.18 |