프로그래밍언어/C언어[Error]
[C언어][Error] 059. type defaults to ‘int’ in declaration – 타입 미지정 시 int로 추정됨
about_IT
2025. 4. 29. 00:20
이 오류는 변수나 함수 선언 시 자료형(type)을 명시하지 않은 경우 발생합니다.
구형 C 컴파일러에서는 자료형이 생략된 경우 기본적으로 int형으로 간주하는 관행이 있었지만, 현대 C 표준(C99 이후)에서는 반드시 명시적으로 자료형을 선언해야 하며, 생략은 문법 오류로 처리됩니다.
이는 코드 가독성 저하 및 타입 추정에 따른 버그를 방지하기 위한 조치입니다.
● 오류 예제
main() { // 오류: 반환형 생략
return 0;
}
컴파일 시 다음과 같은 경고 또는 오류가 발생할 수 있습니다.
error: expected declaration specifiers or ‘...’ before ‘main’
※ 참고: 현대 C 컴파일러에서는 반환형을 생략하는 것을 경고가 아닌 명백한 오류로 처리합니다.
● 해결 방법
변수, 함수, 매개변수 선언 시 반드시 자료형을 명시해야 하며, 특히 main 함수는 int main() 형태로 정확히 선언해야 합니다.
#include <stdio.h>
int main() {
return 0;
}
이 코드는 표준에 부합하며 정상적으로 컴파일됩니다.
● 실전 팁
- 모든 선언에는 자료형(type)을 반드시 명시하세요.
- main 함수는 항상 int main() 또는 int main(int argc, char *argv[]) 형태여야 합니다.
- void main()은 표준 위반이며, 반환형 생략 또한 허용되지 않습니다.
- 컴파일러 경고 옵션(Wall, Wextra 등)을 활성화하여 자료형 누락을 사전에 탐지하세요.
C언어는 자료형을 명확히 구분하는 언어입니다.
모든 선언 시 타입을 명확히 작성하는 습관은 안전하고 표준에 맞는 코드를 작성하는 기본입니다.