목록Programing/C, C++ (34)
공부중
2017.07.07 - [Programing/C, C++] - [C/C++] 구조체의 크기에 관해서.. [C/C++] 구조체의 크기에 관해서.. 퇴사후 휴식을 하고 잊어버린 C++을 ... 다시 공부하려고 하는데(진짜 다 잊어버려서 내가 당황스럽다..) 허리가 너무 아파서 겨우겨우 허리 잡으며 하나하나 정리라도 하면서 잊어버린거 혹은 그 hannom.tistory.com 과거에 정리했던거지만 좀 더 정리를 해보려고 한다. 구조체의 크기는 멤버중에서 가잔 큰 크기의 멤버 자료형을 기준으로 계산할 수 있다. 아래의 코드를 보면서 살펴보면... struct sizeTest1 { int a; short b; char ch; int c; }; struct sizeTest2 { int a; short b; int ..
2012/12/04 - [Programing/C, C++] - [VS2012] 64bit 에서의 int [VS2012] 64bit 에서의 int 64bit 시스템을 드디어 사용해본 나로서는 제일 궁금했던 int의 크기 변환을 눈으로 확인해보고 싶었다. 대충 크기를 확인해 보기 위해 짜보았다. #include int main() { std::cout
모든 정수의 가장 왼쪽에 있는 비트는 부호비트 0 0 1 1 0 0 0 0 부호비트 데이터 일반적으로 표현하는 singed 변수들은 위와같이 부호비트를 가지게 된다. 하지만 음수의 값을 가지지 않는 unsinged 변수들은 아래와 같이 부호비트도 데이터를 표현하는데 사용되므로 더 넓은 양의숫자를 표현할 수 있다. 0 0 1 1 0 0 0 0 데이터 음수를 표현하는 방법 0 0 1 1 0 0 0 0 부호비트 데이터 위의 숫자를 음수로 변경하려고 한다. 부호 비트만 바꾸어 보면 1011 0000 이 된다. 하지만 정수 A가 존재할시 -A를 더할경우에는 0이 되어야 정상이다. ex) A == 10 , 10 + (-10) = 0 0011 0000 + 1011 0000 1100 0000 위와같이 0이 되지 않으므..
int a = 10; ++a;// 전위 증가연산자 --a;// 전위 감소연산자 a++;// 후위 증가연산자 a--;// 후위 감소연산자 전위 증가/감소 연산자는 위와같이 쓸 수 있다. 여기서 특이사항은 전위 연산자는 증가/감소 연산을 먼저 처리하는것이고 후위 연산자는 증가/감소 연산을 나중에 처리하는것이다. 여기까지는 아무런 문제가 없고 잘 사용하면 그만인데... 아래와 같은 문제를 받은적이 있었다. int a = 10; int b = 20; (++a) = 50; (b++) = 70; ++(++a); (b++)++; 증감 연산자에 뭔가 변태적까지는 아니지만 그래도 이건 좀 불편한 코드라는것은 다르지 않다. 여기서 나는 당당하게도 50 71 52 72 가 출력될줄 알았다.. 하지만 결과는 아래와 같았다. ..
Lvalue와 Rvalue라는것이 있다. 흔히들 Lvalue와 Rvalue는 Left Value와 Right Value라고 말하며 이것은 =기호를 기준으로 왼쪽과 오른쪽에 있는것을 각각 Lvalue와 Rvalue로 말한다. 하지만 위의 내용은 100% 맞다고 볼수가 없다. docs.microsoft.com/ko-kr/cpp/cpp/lvalues-and-rvalues-visual-cpp?redirectedfrom=MSDN&view=msvc-160 값 범주: Lvalues 및 Rvalue (c + +) Lvalue 및 Rvalue (C++)Lvalues and Rvalues (C++) 이 문서의 내용 --> 모든 c + + 식에는 형식이 있으며 값 범주에 속합니다.Every C++ expression has..
흔히 오른쪽에서 왼쪽으로 읽는다 이런 규칙이 있다라는것을 학부생때 들어보긴 했었는데 그렇게 많은 책을 읽어본것은 아니지만 책에서도 이러한 내용은 없었고 비슷한것은 연산자 우선순위 조립 방향?? 이정도? 그래서 찾아본 결과 모든 참고가 되었다는 링크는 캘리포니아 샌디에고 대학의 한 웹페이지로 링크가 다들 가고 있었다. cseweb.ucsd.edu/~ricko/rt_lt.rule.html 위의 내용을 그대로 해석해 보고 정리해서 이해해보려고 한다. *포인터 - 항상 왼쪽에 있다. []배열 - 항상 오른쪽에 있다. ()함수 반환 - 항상 오른쪽에 있다. 위의 규칙을 기억하자. 1. 제일 먼저 선언된 식별자 찾고 식별자(identifier, 변수명 또는 함수명)을 기준으로 시작합니다. 2. 식별자를 기준으로 오..
오늘은 const에 대해서 공부좀 해보려고한다. 매번 const에 대해서 공부하지만 머리가 안좋은 나는 매번 까먹는다. 그리고 이 블로그에 정리도 안되어있는걸보고 이번에 해봐야겠다고 생각했다. const 키워드는 객체 또는 데이터 수정을 할 수 없도록 상수화해주는 키워드이다. const int a = 100; static const int b = 200; const AAA aaa(20); 위와같이 사용이 가능하며 a와 b는 상수화가 되어서 각각 100, 200에서 변경이 불가능하다. 마지막 라인처럼 객체에 const 선언이 붙게 되면 이 객체는 const 멤버함수만 호출이 가능하다! -> 이 객체의 데이터 변경을 허용하지 않으므로 변경가능성이 없는 const 멤버함수만 호출이 가능하기 때문. 위의 내용까..
퇴사를 하고 백수생활을 한지 어느덧 한달이 지났다 뭐 로또가 된게 아니니 공부를 계속해서 취업준비도 해야되겠다 생각이 들고 뭐.... 어 .... 아무튼 게임잡에 글 올렸는데 우연치 않게 바로 연락와서 면접을 봤는데 탈탈 털린뒤 과거의 내가 이런게 있었지 하고 기록을 하려고 또 글을 끄적인다. 이번글은 malloc과 new의 차이이다. 솔직히 말해서 나는 순수 C(?)를 아예 손도 안대고 살아왔던터라 ( 독학을 그냥 class 없는 C++으로 시작했다. 후우... ) 면접시 깊은 답변은 못했지만 이번에라도 알아가야하지 않겠는가 ㅠ 예제 코드는 아래와 같다. #include class MyClass { public: MyClass() { std::cout