목록Programing/C, C++ (34)
공부중
C++14에서 생긴 내용이라고 한다. 코드는 아래와 같다. #include int main() { //C++14 2진수 리터럴 int binary = 0b01010101; //1+4+16+64 == 85 std::cout
퇴사후 휴식을 하고 잊어버린 C++을 ... 다시 공부하려고 하는데(진짜 다 잊어버려서 내가 당황스럽다..) 허리가 너무 아파서 겨우겨우 허리 잡으며 하나하나 정리라도 하면서 잊어버린거 혹은 그냥 생각나는대로 뭐라도 옮겨 적으려고 한다 -_-.. 블로그 API도 종료되서 매우매우 캡쳐 뜨기도 귀찮기는 하지만..... 이번에 적을것은 구조체 선언시 문제(?)가 될 수 있는 것이다. 소스코드는 아래와 같다. #include struct MyStruct1 { int a; char b; double c; short d; }; struct MyStruct2 { char a; short b; int c; double d; }; struct MyStruct3 { }; int main() { MyStruct1 s1; ..
이미 알고는 있었지만 다시 한번 되새김질을 위하여…. #include class A { public: virtual void foo() { std::cout
몇 일전 모 회사의 필기시험 보러 갔다가 멘붕 당해와서 공부를 하려고 한다. 아오….. 존나 나의 뇌는 쓰레기인가보다. 먼저 당황했던건 머릿속에 있는 비트연산이라는 폴더가 있지만 파일이 없는 관계로 다시 정리하고 제목에 있는 것을 간단히 만들어 보려고 한다.(이야 존나 소 잃고 외양간 강철로 짓기) 일단 존나 음…… 간단하게 정리하면 컴퓨터는 모든 데이터의 표현 및 연산을 2진수로 처리한다. (11 01 01 10 10 00 11 00 10 이런 거로 한다고 한다… ) 혹시 몰라서 2진수라는걸 말하면 데이터를 표현하는데 2개의 숫자를 쓰겠다는 것이다. (그래서 0 과 1을 쓴다. – 왜 다른 숫자도 많은데 하필 0과 1을 쓰냐고 물으면 나도 모른다. 10진법에 길들여진 우리가 보기 편하고 생각하기 편하라..
페이스북 생활코딩이라는 그룹에서 글을 보다가 다음과 같은 질문 글을 본적이 있었다. (링크) 배열 선언 시 크기에 상수가 아닌 변수 size가 들어가 있으므로 컴파일 에러를 출력할 줄 알았는데 의외의 답변이 달렸다. https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html 뭔가 내가 아는 지식이 틀린 지식이라는 것에 뭔가 뒤통수를 맞은 기분이었다. 정말로 gcc컴파일러에서는 돌아가는지 확인해 보았다. 헐… 된다…. 마지막으로 최신버전인 VisualStudio2015에서는 어떤지 봤다. 그냥 보이는 빨간 밑줄.. 역시… 이걸 보고 나서.. 컴파일러마다 적용되는 몇몇 다른 문법이 있다는 것을 다시 한번 느끼게 되는 문제였네요…..
C언어는 저수준 언어의 효율성과 하드웨어 접근 능력에 고수준 언어의 일반성과 이식성이 결합된 실용적인 언어이다. 일반적으로 컴퓨터 언어에는 데이터(Data)와 알고리즘(Algorithm) 이라는 두 가지 개념을 다루는데.. 데이터(Data)는 프로그램이 사용하고 처리하는 정보를 말하고 알고리즘(Algorithm)은 데이터를 처리하는 방법을 말한다. C언어는 절차적(Procedural)언어이다. 이 절차적 언어라는 말은 프로그래밍에서 데이터보다 알고리즘에 더 치중한다 절차적 언어들은 프로그램의 덩치가 커지면 작성하는데 어려움이 있다. 프로그램 작성시에 분기문을 사용하게 되는데 이 분기문은 조건검사의 결과에 따라서 서로 다른 곳으로 분기하여 다른 작업을 수행한다. 이러한 분기문이 어지럽게 엉켜있으면 프로그램..
int의 크기가 64bit OS에 맞춰서 변할 줄 알았는데 int의 크기는 똑같다는 결과가 나왔었다 하지만 주소의 크기는 변했을꺼라 믿고 다시 Visual Studio 2012를 켯다. 소스코드는 다음과 같다. #include int main() { std::cout
디폴트 값이란 무엇일까?? 디폴트 값은 기본적으로 설정되어있는 값을 의미한다. 그렇다면 매개변수의 디폴트 값은 함수 호출에서 실제 전달인자를 생략했을 경우에 실제 전달인자 대신 사용되는 값이다. 예를 들어서 void Example(int nNumber) 위와 같은 함수에서 nNumber가 만약에 10으로 디폴트 값을 지정했다면 Example(); 이라고 호출 했을 경우 이 함수 호출은 Example(10);와 같은 함수 호출이 된다. 다음 함수를 보자. void SUM1(int nNumber = 10) { return nNumber+1; } 여기서 SUM1 함수의 매개변수 선언은 int nNumber = 10 이다. 이 선언은 함수 호출 시 인자를 전달하지 않을 경우 10이 전달된 것으로 정의하겠다 라는..