안녕하세요!

오늘은 1980년의 C언어의 모습을 소개해보려 합니다.

버전 연도 주체
Traditional C 1972 Dennis Ritchie
K & R C 1978 Kernighan & Dennis Ritchie
ANSI C 1989 ANSI Committee
ANSI/ISO C 1990 ISO Committee
C99 1999 Standardization Committee
C11 2011 ISO/IEC

옛날 느낌 물씬!

옛날 느낌 물씬!

아래의 코드를 살펴보시죠

#include <stdio.h>

func(a, b, c)
	int		a;
	int		b;
	int		c;
{
	b = 40;
	c = a + b;
	printf("%d", c);
	return (c);
}

main()
{
	func(10);
	return (0);
}

1️⃣ 먼저 위 코드는 함수의 반환 타입이 없습니다.

2️⃣ 파라미터가 3개인데, 인자로 1개만 넣었네요!

3️⃣ 파라미터의 타입이 { }중괄호 바깥에 있습니다.

⇒ 이걸 컴파일 해보면...

Untitled

**기본 반환타입이 int로 적용됩니다** 라는 경고와 함께, 컴파일과 실행이 잘 되는 것을 볼 수 있습니다.

근데 왜 컴파일이 될까요?


그건 위 코드가 C99 표준 이전 스타일로 작성된 코드이기 때문입니다.

애플 오픈소스 사이트의 소스코드 중 오래된 코드들은 아래와 같이 생겼습니다.

Untitled

Untitled

위와 같은 코드 스타일을 **K&R Syntax** 라고 합니다.