Coding

    [ C++ ] Chapter 4.3 : using의 모호성

    #using 의 모호성 namespace a { int my_var = 123; char aa = 'a'; } namespace b { int my_var = 345; char bb = 'b'; } int main() { using namespace std; using namespace a; using namespace b; cout

    [ C++ ] Chapter 4.2 : 전역 변수, 정적 변수, 내부 연결, 외부 연결

    #전역 변수 *사용을 자제해야한다. 다른 cpp파일에도 영향이 가기 때문이다. 함수 외부에서 선언된 변수를 전역 변수라 한다. *Global Scope Operator 영역 연산자 '::' 를 사용하여 전역 변수에 접근할 수 있다. int value = 0; int main() { int value = 1; cout

    [ C++ ] Chapter 4.1 : 지역변수, 범위, 지속기간

    #지역변수 함수 내부에 정의된 변수를 지역변수라고 한다. #지역변수의 범위 C++에서는 기본적으로 중괄호{}가 지역변수가 생성되고 소멸되는 기본 Scope 범위. #중첩된 블록 *같은 블록에서 동일한 이름의 변수는 허용하지 않는다. 중첩된 내부 블록에서는 외부 블록의 변수와 동일한 이름을 가질 수 있다. 이때 내부 블록에서는 외부 블록의 변수가 가려지기 때문에 쉐도잉이라고 한다. int main() { int a = 0; cout

    [ C++ ] 비트 플래그, 비트 마스크 ( bit flag, bit masks )

    비트 플래그, 비트 마스크 ( bit flag, bit masks ) #비트 플래그란 ? 0000 0001 플래그(flag)는 깃발에서 유래한 용어다. 보통 깃발을 위로 올리면 on, 아래로 내리면 off를 뜻한다. 이걸 정수의 비트에 활용하는 건데 비트가 1이면 on, 0이면 off를 나타낸다. 메모리의 최소 단위는 1바이트 ( 8 bit ) 다. 즉 변수도 최소 1바이트 이상인 것이다. 1바이트는 8비트이므로 총 8개의 상태 값을 저장할 수 있다. 변수의 최소 단위는 1바이트 이기 때문에 bool 자료형은 1비트만 사용하고 7비트는 낭비하게 된다. 예를 들어, 게임에서 8가지의 능력을 획득하고 잃을 수 있다고 가정해보자. bool 자료형으로 8가지의 값을 표현한다면 각 7비트씩 낭비하기 때문에 메모리..

    [ C++ ] 비트 단위 연산자 Bitwise Operators

    #비트 단위 연산자 ( Bitwise Operators ) 변수 내의 비트를 조작하는 것을 비트 단위 연산자라 한다. 메모리의 가장 작은 단위는 1바이트다. 예를 들어, true, false 값에 의해 1비트를 차지하는 bool 자료형만을 사용할 경우, 메모리에서는 1비트를 사용하고 7 비트를 낭비하게 되는 것이다. 이와 같은 낭비를 방지하여 메모리를 절약하고자 bitwise 연산자를 사용한다. bitwise 연산자를 사용하면 8개의 bool 값을 한개의 bool 변수에 압축하여 넣을 수 있다. 주로 게임, 많은 양의 데이터, 메모리가 작은 하드웨어에서 사용되고, 최적화가 필요한 특정 상황을 제외하고는 잘 사용되지 않는다. #C++의 비트 단위 연산자 Operators Symbol Form left sh..

    [ C++ ] 논리 연산자 (Logical Operators)

    관계 연산자는 조건이 True 인지 false 인지, 한번에 하나의 조건만 테스트 할 수 있다. 하지만, 논리 연산자는 여러 가지의 조건을 True 인지 false 인지 테스트 할 수 있다. C++에는 3가지 Logical Operator가 있다. Operator Symbol Form Logical NOT ! !x Logical OR || x || y Logical AND && x && y 1. Logical NOT 논리 부정 연산자가 피연산자를 평가하면 True가 false가 되고, false가 True가 된다. 즉, 부울 값을 반전시킨다. *주의점 : 논리 부정 연산자는 연산자 우선순위가 굉장히 높다. if ( !x == y ) cout

    [ C++ ] 02.08 상수 constants

    상수 상수에는 두 가지가 있다. 리터럴(literal), 심볼릭(symbolic). 상수란 ? 상수는 변하지 않는 변수를 뜻한다. 상수에 넣는 데이터는 수 이외에 클래스나 구조체와 같은 객체가 담길 수도 있다. 상수의 선언 const 키워드, constexpr 키워드 두 가지를 사용하여 선언할 수 있다. constexpr 키워드는 런타임이 아닌, 컴파일 타임에 상수가 완전히 결정되는 것을 문법상으로 정해주는 것이다. 때문에 런타임 중에는 사용시 주의해야한다. 상수의 예 int add(const int a, int b) { // 파라미터의 값을 상수로 선언한다. return a + b; } int main() { add(1, 2); } 매개변수를 상수로 선언하는 경우다. 함수의 입력이 되는 매개변수는 함수..

    [ C++ ] 02.05 - 부동 소수점 숫자 ( floating point numbers )

    02.05 - 부동 소수점 숫자 ( floating point numbers ) 부동 소수점 자료형은 3.141592 와 같은 실수를 저장하는 데이터 자료형이다. C++에는 float, double, long double 과 같은 부동 소수점 자료형이 있다. Type Minimum Size Typical Size float 4 bytes double 8 bytes 8 bytes long double 8 bytes 8, 12, 16 bytes float f = 3.14159f; double d = 3.14159; long double = 3.14159; *float 자료형은 f 접미사를 리터럴에 붙여주어야 컴파일러가 제대로 인식한다. 붙지 않을 경우, double 자료형으로 판단한다. 정밀도와 범위 (Pr..