브래의 슬기로운 코딩 생활
C++ 언어 소개 본문
프로그래밍 기본 용어
- 원시 프로그램
소스코드 라고도 하면 프로그래머가 작성한 프로그램
- 컴파일 (compile)
고급 언어들은 기계어로 버역하기 위해 컴파일러나 인터프리터 프로그램이 필요
컴파일 하면 오브젝트 파일이 생성되고 실행 파일을 얻을 수는 없음
- 링킹 (linking)
컴파일하여 만들어진 각 오브젝트 모듈을 연결
사용한 라이브러리와 연결하는 작업
링킹 후에 실행파일 (.exe)을 얻을 수 있음
- 디버깅 (debugging)
컴파일과 링킹 과정에서 소스 코드에 오류가 있을 수 있는데 이를 오류(error) 또는 버그(bug) 라고 한다
버그를 수정하여 프로그램이 실행 되도록 하는 작업
경고(warning)라는 메세지의 오류도 발생하는데 실행은 되지만 무시하면 안됨
C++ 언어의 발전 과정
C언어의 탄생
- 1970년 Bell연구소의 Ken Thompson은 B 언어로 UNIX라는 새로운 운영체제를 만듦
- 어셈블리 언어를 되도록 적게 사용하는 유닉스를 만들기 위해 Dennis Ritchie는 1972년에 C언어를 개발
- UNIX의 90% 이상이 C 언어로 기술되어 유닉스가 널리 유행하면서 아주 빠른 속도로 성장
C++ 언어
- C++ = C=C+1 = C+class
- C with classes
- C언어의 문법을 모두 포함, 개선
- C문법을 포함하지만 프로그래밍 스타일은 다름 (구조적 vs 객체 지향)
- 객체 지향 프로그래밍이 가능하도록 class위주로 다양한 문법 추가
토큰
- C프로그램을 구성하는 기본 단위
- 예약어(reserved word, keyword) : int, if
- 연산자(operator) : +, /
- 구두점(punctuator) : [], ()
- 식별자(identifier) : 변수, 함수, 배열, 구조체 등의 이름
- 상수(constant) 또는 literal : 10, 3.5
- 문자열(string) : "hello"
구두점
- 토큰을 구분하기 위해 사용하는 기호
- [], (), {}, *, 콤마(,), ;, =, :, ..., ""
- =, (), [], 콤마 등은 같은 모양의 연산자도 있다.
- 소스의 어느 부분에 사용하느냐에 따라서 연산자인지 구두점인지 구별
예약어 (reserved word, keyword)
- 컴파일러에 의해 미리 의미가 정해져 있는 32~44개의 단어
- 항상 소문자로만 사용(C99 이전)
- C99에서 추가된 예약어: inline, restrict, _Bool, _Complex, _Imaginary
키워드와 대응하는 매크로(macro)
리터럴 (literal) - 문자 그대로의, 직역의
- 상수
- 정수형 리터럴은 0을 포함한 소수점이 없는 수
- 문자형 리터럴은 1바이트의 문자 (한글은 한 글자가 2바이트를 차지하므로 문자 리터럴이 될 수 없음, 문자 리터럴 양쪽에는 작은 따옴표로 감싸야 함)
- 문자열 리터럴은 두 개 이상의 문자 묶음 (문자열 리터럴은 큰 따옴표로 감싸야 함, 한글은 한글자 라도 문자열, 문자열은 널문자가 포함되어 1바이트 더 큼)
자료형/변수
- 자료형 (data type)은 처리, 저장하고자 하는 자료의 형태: 문자형, 정수형, 실수형
- 변수는 프로그램이 실행되는 동안 가변적인 자료를 저장하기 위한 기억장소의 이름으로 모든 변수는 사용전에 선언 해야함
결합성(associativity)
- 우선순위가 같은 연산자의 결합 방향
제어문
- for문과 if문의 사용 빈도가 가장 높음
코딩 시 자주 사용하는 단축키
- 정렬: Ctrl + k + f
- 주석: Ctrl + k + c, 주석 해제: Ctrl + k + u
솔루션과 프로젝트
- 프로그램은 솔루션 단위
;솔루션 관련 정보는 .sln파일로 저장
;한 솔루션은 여러 개의 프로젝트로 구성될 수 있으며 C/C++로 만든 프로젝트는 .vcxproj 라는 파일에 저장
'Class > C, C++' 카테고리의 다른 글
함수 (2) | 2022.12.31 |
---|---|
제어문 (0) | 2022.12.29 |
C 언어 문법 정리 - 식별자, 리터럴(상수), 자료형, 변수, 전처리기, 연산자 (2) | 2022.12.26 |
C / C++ 자료 출처 (0) | 2022.12.25 |