의문
-
[c++] static 변수의 초기화 시점프로그래밍/의문 2016. 2. 22. 09:09
함수의 정의된 static 객체 => 함수가 처음 호출되는 시점에 인스턴싱 123456static any_class& get(){ static any_class instance; return instance;} cs 클래스에 정의된 static 객체 => 명확한 스펙이 없음 12345class any_class{//... static any_value value;};cs 따라서 정적 메모리에 존재하는 변수들의 초기화 시점을 제제하는 유일한 방법은 모든 정적 메모리 변수를 하나의 변환 단위에 넣어주며, 헤더에 모두 extern 키워드를 사용하는 방법이 최선이다. 출저 more effective c++ http://en.cppreference.com/w/cpp/language/initialization
-
1바이트는 왜 8비트일까?프로그래밍/의문 2016. 2. 2. 22:30
컴퓨터가 처리하는 정보의 최소단위. 비트보다 높다. 옛날에는 4비트, 6비트를 1바이트로 삼는 컴퓨터도 있었으나, 현대(적어도 1984년 이후)의 대개의 컴퓨터 아키텍처에서, 1옥텟, 즉 8비트로 1바이트를 삼는다. 표준 C 언어에서는 '8비트 이상'을 1바이트로 삼도록 규정하고 있다. "byte"는 1956년에 Dr. Werner Buchholz에 의해서 사용되었고, 이는 IBM의 IBM scratch computer를 디자인하는 동안 사용되었다. 이때는 4bit를 1byte로 설계되었다고 한다. 전형전인 I/O장비는 6bit를 1byte로 사용하다가, 나중에 System/360에 8bit를 1byte를 사용하기 시작하면서, 규격이 정해지고 표준화 되었다. 일정한 개수의 비트로 이루어진 연속된 비트열...
-
구글 C++ 스타일 가이드의 멤버 변수 네이밍 규칙을 따르지 않아야겠다고 생각한 이유프로그래밍/c++ 2015. 5. 23. 23:47
언젠가 본 구글 C++ 스타일 가이드에선 멤버 변수의 끝에 _를 붙이는걸 권하고, 헝가리안 표기법은 쓰지 않으며, 멤버 함수(메소드)는 파스칼 네이밍을 쓴다고 들었다. 난 그것이 객관적으로 옳은 쪽에 가깝다고 생각하여 익숙해지려고 그 이후의 모든 코딩에 해당 방식을 적용했지만 멤버 변수의 끝에 _를 붙이는 네이밍은 이러한 이유로 납득이 가지 않는다고 생각했다. 클래스 내부에서 m_을 쓰면 멤버 변수만이 쭈르륵 뽑힌다. 반면 멤버 변수 뒤에 _를 붙이는 방식은 그러한 것들을 보여주는 데에서 유리하지 않다. this를 사용하면 괜찮지 않느냐? 하지만 , 다음과 같이 멤버 함수와 멤버 변수가 함께 잡힌다 지금은 멤버 변수에 m_을 붙이는 형태로 바꿔서 그렇지 그렇지 않았다면 나열 순서도 뒤죽박죽 섞였겠지. C..