Coding/Tip !!
-
memset을 이용한 초기화 문제Coding/Tip !! 2019. 2. 8. 15:03
네트워크 코딩을 하다보면 memset을 이용하는 일이 자주 생긴다.(물론 다른 코딩에서도 많이 쓰일거라고 생각한다) 하지만 이러한 memset을 사용할 때 주의할 점들이 있다. 바로 1Byte 변수(uint8_t, char, unsigned char 등)이 아닌 변수들을 초기화할 때0의외의 값을 사용하면 안된다는 점이다. 그 이유는 만약 4Byte 변수인 int형을 memset으로 초기화하게되면바이트 단위로 초기화가 처리되어 00000001 00000001 00000001 00000001 이 되버려서 값이 0이아닌 다른 수가 되어버린다. 또한 new, malloc 등을 이용한 동적으로 생성한 배열, 변수가 있는struct, class에서는 memset을 이용한 초기화를 해주면 안된다. 예를 들어 다음과 ..
-
자료형 크기와 범위 코딩하기Coding/Tip !! 2018. 10. 3. 11:37
자료형에 대한 크기를 공부할 때 도움이 되는 함수에 대해서 간략하게 포스팅해보려고 한다. 예를 들어 short 형의 크기를 알고 싶은 경우 unsigned일 때 범위가 0 ~ 65535인데 이는 알다시피 2바이트 즉 16비트로 이루어져있고 0과 1 임으로 2^16 이기 때문에 총 65536개의 숫자가 나오게 된다. 이를 계산하려면 헤더에 있는 pow함수를 이용하여도 되지만 더욱 간단한 방법이 있다. 라이브러리를 이용하는 것인데 아래와 같이 사용하면 된다.1234567891011121314#include #include int main(){ using namespace std; -> 이런건 중괄호 안에 선언해주는 것이 좋음 꿀팁!!ㅎㅎ cout
-
변수 초기화 방법Coding/Tip !! 2018. 10. 3. 09:44
변수를 초기화하는 방법 3가지 Copy Initialization, Direct Initialization, Uniform Initialization 1. Copy Initialization1int a = 123; 가장 흔히 초기화하는 방법임으로 설명은 생략하겠다. 2. Direct Intialization1int a(123); 괄호를 이용한 초기화 방법이다 3. Uniformj Intialization1int a{123}; 2,3 번은 built in data type(제공해주는 데이터타입)이 아닌 사용자가 만든 데이터타입을 초기화할 때 많이 사용된다. 1,2 에 비해서 3번의 경우 조금 더 엄격한 문법을 지킨다. 예를 들어 위에서 처럼 데이터타입이 int 일 때 소숫점 숫자 1.23456을 넣게되면 ..
-
매크로 함수Coding/Tip !! 2018. 10. 3. 07:23
매크로(define) 자주 사용하게 되는 상수 등을 문자형식으로 나타내어 편리하게 사용하게 하는 것이다.매크로 상수는 컴파일 전에 전처리기에 의해서 미리 치환되며 변수이용보다 처리속도가 빠르다.#define을 사용하며 매크로 정의 시 앞부분에 써주면된다.보통 대문자로 많이 정의하며 가독성을 높여주고 유지보수를 편하게 해준다. Tip!#은 전처리기의 의미로 컴파일,빌드 하기 전에 진행한다는 의미이다. 매크로 함수[형식] #define 매크로 상수이름 문자열 or 숫자#define 매크로상수이름(인자) 수식 or 문자열 or 숫자 아래는 매크로 함수예시이다. 삼항연산자를 이용하였다.삼항연산자 -> (조건식) ? (참 일때) : (거짓 일때) 12345678910111213#include using names..
-
Header GuradCoding/Tip !! 2018. 10. 2. 11:30
Header Guard 란?? 헤더 가드의 이해를 돕기위해 예시로 설명하겠다.예를 들어 우리가 헤더파일을 생성했을 때 main 함수와 헤더파일 내부에 아래와 같은 함수가 있다고 가정해보자. main.cpp1234567891011#include #include "test1.h"#include "example123.h" using namespace std; int main(){ cout 두번이나 중복됨 (example123.h에서 include되었음으로 두번 불리게 된 것임){ return a + b;} int main(){ cout
-
C++ auto 키워드 사용하기Coding/Tip !! 2018. 9. 19. 14:59
auto 키워드선언 지정자인 auto 키워드는 초기화시에 초기화 값에 맞춰 자동으로 자료형을 판단하는 기능을 가진다. 해당 키워드를 사용할 때의 주의점은 선언만하고 초기화를 하지않으면 사용이 불가능하다.-> 이유는 당연히 초기화된 값을 기준으로 자료형을 선택하기 때문이다. 1234567891011#include int main(){ auto a = true; auto b = 1; auto c = 'c'; auto d = "hello world"; auto e; (x) return 0;} 이건 그냥 Tip인데 출력 시에 자료형을 나타내고 싶을경우 typeid(변수이름).name( ) 을 해주면 자료형이 출력된다. auto 사용 예시123456789101112131415161718192021222324252..