C/C++ で働かす Raspberry Pi 3
C/C++ 로 작동시키는 Raspberry Pi 3
Raspberry Pi (라즈베리파이)에 관심이 있어서 빌렸는데, 80%의 비중으로 C++ 총정리입니다.
남겨 놓을 만한 내용이 있어 정리합니다.
1. 변수
---------------
int num=100; //copy initialization
---------------
을
---------------
int num(100); //direct initialization
---------------
으로 표현 가능하네요.
copy initialization,direct initialization의 차이가 있다고 하는데....
초기화 하지 않은 상태로 출력해보면 차이가 있습니다.
---------------
int num; -> 0 (false)
int num(); -> 1 (true)
---------------
2.cmath라이브러리
---------------
#include <cmath>
...
pow(2,3) -> 2의3승 -> 8
sqrt(2) -> 루트2 -> 1.41421
M_PI -> 파이 -> 3.14159
---------------
http://www.cplusplus.com/reference/cmath/
3. 비트연산
---------------
int a=1;
int b=a << 2; -> 2bit 좌로 이동 -> 0001 -> 0100 -> 4
---------------
4.bitset라이브러리
---------------
#include <bitset>
..
bitset<4> a; -> 4bit의 변수를 선언 -> 0000
a.set(2); -> 3번째에 1을 설정(오른쪽으로부터 0을 두개지나서) -> 0100
bitset<4> a=1UL; -> 1을 4bit로 대입 -> 0001
bitset<4> a=2UL; -> 2을 4bit로 대입 -> 0010
bitset<4> a=3UL; -> 3을 4bit로 대입 -> 0011
bitset<4> a=4UL; -> 4을 4bit로 대입 -> 0100
---------------
http://www.cplusplus.com/reference/bitset/bitset/
5.vector 벡터
---------------
#include <vector>
..
vector<int> v(5,1); -> int[5]={1,1,1,1,1} 와 같이 5개의 원소를 1로 초기화
v.size() -> 원소수 -> 5
v.empty() -> 비어있으면 1 (true), 아니면 0 (false)
---------------
http://www.cplusplus.com/reference/vector/vector/
6.pointer 포인터
---------------
#include <iostream>
using namespace std;
void change(int* numP)
{
(*numP)++;
-> ()가 없으면 연산자 우선순위에 의해 ++ 가 먼저 처리되어
주소에 담긴 값이 아닌 주소자체가 바뀌게 됩니다.
}
int main(void)
{
int num=1;
cout << num << endl; -> 1
change(&num);
cout << num << endl; -> 2
return 0;
}
---------------
7. 메모리 동적할당(new)/해제(delete)
---------------
#include <iostream>
using namespace std;
int main(void)
{
int* arr=new int[3]; -> Hip영역에 메모리할당 (C의 malloc 와 동일)
arr[0]=0;
arr[1]=1;
arr[2]=2;
for(int i=0;i<3;i++)
cout << arr[i] << endl;
delete[] arr; -> Hip영역에 메모리해제 (C의 free와 동일)
-> delete arr; 도 같은 처리가 되었습니다.
for(int i=0;i<3;i++)
cout << arr[i] << endl;
return 0;
}
---------------
메모리 동적할당,해제 관련은 따로 조사해서 새로 정리해야겠습니다.
Part1 ..끝..
'C++' 카테고리의 다른 글
Part 3: 함수오버로드, 함수에 배열전달,포인터,참조자..C++ 책 반납 전 소소한 정리(C/C++ 로 작동시키는 Raspberry Pi 3) (0) | 2019.02.06 |
---|---|
Part 2: string,sizeof,goto,try-throw-catch..C++ 책 반납 전 소소한 정리(C/C++ 로 작동시키는 Raspberry Pi 3) (0) | 2019.02.05 |
Xcode의 c++프로젝트에서 ofstream으로 파일작성이 안될때 처리 (0) | 2019.02.05 |
C++ 배열 초기화 std::fill, std::fill_n .. 정리 (0) | 2019.02.04 |
C++ cout,cin 을 빠르게 (0) | 2019.02.01 |