본문 바로가기

프로그래밍/기본기ㆍ자료구조

C, C++, C# 언어의 차이점

728x90
반응형

# C

- 절차지향 언어

- 절차지향이기 때문에 하향식 접근 방법을 채택

- 메모리를 직접 관리해야한다.

- 가장 빠르고 가장 좋은 성능을 지녔다.

- 어떤 플랫폼에서든 사용이 가능하다.

- 문법이 틀리지만 않는다면 에러없이 대부분을 허용한다.

- 시스템 수준의 프로그래밍에 적합하다.

(우주선이나 탐사로봇들이 C인걸로 아는데 맞나..?)

- 범용성이 낮다.

- 메모리를 직접 관리해야하기 때문에 누수 문제가 생길 수 있다.

 

# C++

- 멀티패러다임 언어

(객체지향 언어로서 사용하지만 절자치향으로도 구현이 가능하다)

- 상향식 접근 방식을 채택

- 메모리를 직접 관리해야한다.

- C만큼의 빠른 속도를 보장한다.

- 어떤 플랫폼에서든 사용이 가능하다.

- 문법이 틀리지만 않는다면 에러없이 대부분을 허용한다.

- 게임, 서버, 장치 드라이버 등에 적합하다.

(언리얼 엔진도 C++이고 TCP/UDP 구현하는거 보면 C++이 많다.)

- 메모리를 직접 관리해야하기 때문에 누수 문제가 생길 수 있다.

 

# C#

- 객체지향 언어

- 상향식 접근 방식을 채택

- 메모리를 직접 관리할 필요가 없다.

(GC가 관리해준다. 그렇다고 손놓고 있으면 누수, 느려지는 현상 등을 겪을 수 있다.)

- C++보다 느린 속도

(대부분 자동으로 처리해주기 때문에 수동으로 처리하는 C/C++보다 느리다.

컴파일 단계도 C++보다 한 단계 더 거친다. CPU->커널->윈도우-CLR-EXE파일)

- 윈도우 OS 위주이며 .NET Framework에서만 돌아간다는 한계가 있다.

- 형변환에 있어서 엄격하다. 사전에 컴파일러가 경고, 에러를줘서 심각한 상황을 방지할 수 있다.

- C/C++과 달리 int, long 같은 원시형 자료들도 모두 객체로서 구현되어 있다.

(int i; i.ToString()처럼 연산자 함수를 갖는다.)

 

 

이 밖에도 굉장히 많은 차이점들이 존재하는데, C++과 C#의 차이점들만 아래에 정리해 보았다.

 

C++의 경우 bool 형식은 정수형으로 변환이 된다.

C#의 경우 bool형은 정수형으로 변환되지 않는다.

 

C++에서 long 형식은 32Bit이다

C#에서 long 형식은 64Bit이다

 

C++에서 switch문은 case 레이블에 대해서 순차 조건 검사를 지원한다.

C#에서 switch문은 case 레이블에 대해서 순차 조건 검사를 지원하지 않는다.

 

C++은 헤더 파일을 사용한다.

C#은 헤더 파일을 사용하지 않는다.

 

찾아보니 더 많지만 전부 나열하기에는 너무 많은거 같아 내가 생각할 때 주요 차이점만 골라보았다.

 

 

 

다람쥐와 포동포동이

 

 

 

 

 

 

RememberCook 9월 28일 정식 출시!

두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관

chipmunk-plump-plump.tistory.com

반응형