Keil 환경에서 ARM Compiler를 쓰며 마지막 줄에 개행 문자(\n)를 넣지 않으니 Waring 메시지가 떴었다.
찾아보니 C언어에서는 파일의 마지막에 개행 문자(\n)를 넣어야 한다는 규칙이 존재한다. 하지만, 실제 컴파일 환경에서 이 규칙을 무시해도 대부분의 경우 문제가 발생하지 않는다. 그렇지만 개행 문자를 마지막에 꼭 넣어야 하는지 알아보자.
C 표준의 규칙
C 표준(ISO C)에 따르면, 소스 파일의 마지막 줄은 반드시 개행 문자로 끝나야 한다. 그렇지 않을 경우, 컴파일러에 따라 다음과 같은 문제가 발생할 수 있다.
- 소스 코드가 제대로 종료되지 않았다고 간주될 수 있다.
- 다른 파일과 합칠 때 의도치 않은 문제가 생길 수 있다.
왜 개행 문자가 필요한가?
1. POSIX 시스템 규칙 : POSIX에서는 텍스트 파일이 항상 개행 문자로 끝나야 한다고 정의한다. 이를 따르지 않으면 시스템이 텍스트 파일을 올바르게 읽지 못할수 있다.
2. 파일 합치기 문제 : `#include` 나 여러 파일을 합칠 때 개행 문자가 없으면 코드가 예상치 못한 방식으로 합쳐질 수 있다.
파일의 개행 문자 확인 방법
cat -e filename.c
- 개행 있음 : `int main() { return 0; }$`
- 개행 없음 : `int main() { return 0; }`
728x90
'C언어' 카테고리의 다른 글
[C언어] printf 함수 구현 (0) | 2024.12.19 |
---|---|
[C언어] qsort() 함수란? (0) | 2024.11.18 |
srand() 함수란? (0) | 2024.11.15 |
[C언어] OOP 공부 (2) (1) | 2024.11.13 |
티스토리 기본모드 수식 삽입 (2) | 2024.11.13 |