# 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
'프로그래밍 > 기본기ㆍ자료구조' 카테고리의 다른 글
OOP 객체지향 5가지 원칙 (1) | 2021.02.04 |
---|---|
OOP 객체지향 4가지 특징 (0) | 2021.02.03 |
Dictionary와 HashTable의 차이 (0) | 2021.02.01 |
C# GC의 이해 및 메모리 최적화 (4) | 2021.01.31 |
String, StringBuilder의 차이 (4) | 2021.01.30 |