티스토리 뷰
안녕하세요. 09LABS입니다.
오늘은 C++ 프로그래밍의 기초와 자료형에 대해 알아보겠습니다.
C언어는 절차지향 언어라고 흔히 알고있습니다. 절차지향 언어란 코드를 작성한 순서대로 동작하는 것을 의미합니다.
절차지향 언어는 복잡한 알고리즘을 사용하지 않는 환경에서는 사용하기 좋습니다.
반면 복잡한 알고리즘과 코드의 재사용성에 있어서는 활용도가 떨어지기 때문에 대규모 시스템을 구축할 때에는
객체지향 언어가 더 적합합니다.
저는 임베디드 시스템에 사용하기 위하여 주로 프로그래밍 언어를 C언어로 선택하여 사용했었습니다.
특히 롬의 용량이 64MB밖에 되지 않기 때문에 인터프리터를 필요로 하거나 용량을 많이 차지하는 언어,
멀티코어 환경에 적합한 언어는 사용이 어려웠습니다.
하지만 개발을 하면 할수록 객체지향 언어의 필요성을 느끼게 되었고 특히 C언어에서 길게 사용했던 코드를
획기적으로 줄이고, 더 편하게 사용할 수 있는 C++을 시작하게 되었습니다.
자 그럼 본격적으로 시작해보겠습니다.
저는 컴파일 환경을 구축하기 위해 Jetbrain사의 CLion IDE를 사용합니다.
요즘은 확장성이 좋아진 VSCode를 사용하셔도 괜찮고 대중적으로 사용하는 Visual Studio를 사용하셔도 괜찮습니다.
1
2
3
4
5
6
7
8
9
10
|
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!" << endl;
return 0;
}
|
cs |
프로그래밍을 시작할 때 다들 Hello World부터 시작하시는 거 아시죠?
위 코드를 실행하면 Hello World가 출력되는 것을 알 수 있습니다.
(1) #include <iostream>
다들 C언어를 배우셨으면 첫 줄에 #include <stdio.h>를 적으셨던 것을 아실 겁니다.
C++에서는 iostream이라고 적어주는데요, input / output stream을 의미하는 헤더로
입출력을 위한 헤더 파일을 의미합니다. 여기에는 연산자, 자료형, 입출력 관련 함수 등이 포함되어 있습니다.
(2) using namespace std;
C언어와 가장 달라진 점은 네임스페이스라는 것을 사용한다는 것입니다.
쉽게 말하자면 변수, 함수, 형식 등의 이름이 사용하고자 하는 네임스페이스에서만 사용된다 라고 정의한 것입니다.
C언어에서는 변수, 함수, 형식의 이름이 같은 헤더를 두 개 참조해서 사용하게 된다면 컴파일 에러가 발생하는 것을
알 수 있습니다. C++에서는 코드의 재사용성을 높이기 위하여 네임스페이스를 사용하게 되었다고 이해하시면 편합니다.
std는 standard 네임스페이스를 의미합니다. 즉 이 파일에서는 standard 네임스페이스를 표준 네임스페이스로
사용한다는 의미입니다.
그렇다면 표준 네임스페이스를 정의하지 않고 코드를 작성할 수 있을까요?
정답은 'YES' 입니다.
C++ 프로그래밍을 시작하실 때에는 std 네임스페이스를 사용하시는 것이 편하지만 나중에 기능을 분리하여
네임스페이스를 정의하셨다면 아래와 같이 사용하시면 됩니다.
1
2
3
4
5
6
7
8
9
|
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
return 0;
}
|
cs |
원래 cout이라고 작성한 코드 앞에 std:: 를 추가하여 std::cout, std::endl 과 같이 적어준 것을 확인할 수 있습니다.
만약 cout, endl과 같은 기능이 std 네임스페이스가 아닌 test라는 네임스페이스에 존재한다면 test::cout, test::endl
처럼 작성해주면 됩니다.
오늘은 C++기초와 네임스페이스, Hello World 예제를 알아봤는데요, 다음 시간에는 C++에서 사용되는 자료형과
Input Stream을 처리하는 방법에 대해 알아보겠습니다.
- Total
- Today
- Yesterday
- ESP-IDF
- IOT
- esp32
- 해커랭크
- Hypercube
- 쏘카
- 코딩테스트
- 3D Printer
- 리눅스
- 하드웨어
- 3D 프린터
- DIY
- ESP
- C언어
- 자작
- fusion360
- 퓨전360
- Arduino
- SQLITE3
- 프로젝트
- 오픈소스 하드웨어
- Fusion 360
- C++
- 3D
- 라즈베리파이
- 3d프린터
- 아두이노
- 오픈소스
- 프린터
- 설계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |