Notice
Recent Posts
Recent Comments
Link
공학박사 권경안
ANSI C와 기존 C의 차이점 (2025년 업데이트) 본문
ANSI C와 기존 C의 차이점
C 언어는 1970년대에 개발된 이후 널리 사용되어 왔으며, 1989년 ANSI(미국표준협회)에서 공식 표준으로 제정되면서 ANSI C (또는 C89) 라는 이름으로 정리되었습니다. 이후 ISO에서도 거의 동일한 내용으로 채택되면서 C90이라고도 불립니다.
기존의 '전통적인 C (K&R C)'와 ANSI C의 차이점을 요약하면 다음과 같습니다:
주요 변경 사항
1. 함수 선언 방식 변경
기존 C에서는 함수 선언 없이 호출해도 문제가 없었지만,
ANSI C에서는 함수 호출 전에 반드시 함수 원형(prototype)을 선언해야 합니다.
이는 컴파일 타임에서 타입 불일치 등을 미리 검출할 수 있게 해줍니다.
// ANSI C 스타일 함수 선언
int add(int a, int b);
2. 새로운 자료형 도입
void
: 반환값이 없는 함수나 타입 없는 포인터를 명확하게 표현할 수 있게 되었습니다.enum
: 열거형 자료형이 정식으로 도입되어 가독성과 유지보수성이 향상되었습니다.
3. 표준 라이브러리 명확화
기존 C에서 헤더 파일은 시스템마다 차이가 있었지만,
ANSI C에서는 표준 라이브러리 함수들이 정식 헤더로 분리되어 정의되었습니다.
예: <stdio.h>
, <stdlib.h>
, <string.h>
등
4. 전처리기(Preprocessor) 기능 강화
ANSI C에서는 다음과 같은 전처리기 지시문이 추가되었습니다:
#elif
: 조건 분기를 보다 간결하게 표현 가능#error
: 사용자 정의 컴파일 오류 메시지 출력#pragma
: 컴파일러 특수 명령 지정
5. 구조체의 대입 및 함수 전달 가능
기존 C에서는 구조체(struct)를 함수에 직접 전달하거나 반환하는 것이 불가능했지만,
ANSI C에서는 구조체를 값으로 복사하거나 함수 인수/반환값으로 사용하는 것이 가능합니다.
'Programming' 카테고리의 다른 글
C언어 문자열(string)이란? (0) | 2009.04.18 |
---|---|
ASCII 코드 테이블 (0) | 2009.04.02 |
Javascript 정규식을 활용한 알파벳, 숫자 입력하기 (0) | 2009.03.04 |
정규표현식(Regular Expressions) (0) | 2009.03.04 |
make compile 시 warning , error 조정하기. (0) | 2008.12.04 |