본문 바로가기

컴퓨터158

[C++] C++의 형변환 const_cast, static_cast, reinterpret_cast, dynamic_cast 1) const_cast: 어떤 타입에서 const 속성이나 volatile 속성을 제거할 때 사용한다. ex)const int ADC_Value = 100;int i = const_cast (ADC_Value); 2) static_cast: C언어의 묵시적 형변한과 같다. ex)a) C스타일int a = 5;double b = (double)a; b) C++스타일double a = 10.0;char b = static_cast (a); 3) reinterpret_cast: 일반적으로 허용하지 않는 위험한 형변환을(강제 형변환) 할 때 사용한다. 그 안의 데이터가 어떤 객체이던 그저 비트열로만 보고 원하는 형으로 강제로 변환한다는 것이다. ex)포인터를 정수로 변환하는 작업.int a;int * b;a .. 2013. 2. 20.
[C언어] #if #endif 조건부 컴파일 1) 조건부 컴파일전처리문이므로 컴파일되기 전에 조건을 평가하며 코드를 컴파일 대상에 포함시키거나 제외시키는 역할을 한다. 이때 조건의 형태는 여러 가지가 있지만 주로 매크로 상수의 존재 여부나 값에 대한 평가식이 사용된다. #ifdef, #ifndef2) #if if는 매크로의 값을 평가하거나 여러 가지 조건을 결합하여 컴파일 여부를 결정하는 좀 더 복잡한 전처리문이다#if 조건1코드1 // 조건1을 만족하면 코드1을 컴파일#elif 조건2코드2 // 조건 2가 만족되면 코드2를 컴파일#else코드3 // 둘 다 맞지 않으면 코드 3을 컴파일#endif (1) 상등, 비교 연산자 사용이 가능하다.==, != , >, =, 2013. 2. 20.
[C언어] 가변인자함수 1. 가변 인자함수 함수의 전닮값(파라미터)(인수) 의 개수가 정해져 있지 않은 함수다. ex) printf, scanf 2. 가변 인수 인수의 개수와 타입이 정해져 있지 않은 인수 3. 가변인수함수 : 가벼인수(...)를 이용한 함수 #include //일반 적인 가변 인수 함수의 구조 void VarFunc(int Fix, ...) { va_list plter; va_star(plter, Fix); while()//모든 인수를 다 읽을 때 까지 { va_arg(pValue, 인수타입); } va_end(pValue); } 가. va_list : 전달된 인수들은 스택에 저장되고 함수는 스택에서 인수를 꺼내 쓴다.va_list타입은 char*형으로 정의됭져 있고 가변이수를 읽기 위한 포인터 변수이다. 나.. 2013. 2. 18.
[C언어] scanf 기본 서식문자 조합 정말 보시다시피 %c와 %hhd의 차이가 있죠? 여러분이 아실점은 %c와 %hhd는 다르다는것과, h는 자료형을 한단계 감소한다는겁니다. 그렇다면 반대로, 한단계 증가시키는건 무엇일까요? 앞에서 말했던 l(L) 입니다 %d : int %ld : long %lld : long %f : float %lf : double %Lf : long double 주의 하실점은 lf와 Lf는 서로 다르다는것이죠. 예제를 통해봅시다. 역시 차이점은 자리수가 늘어난거입니다. 그냥 단순해요, 좀더 공간이 넓어진것 이로서 11-2 scanf 기본 서식문자 조합을 마치겠습니다. 여담이지만 컴파일하시다가 종종 "에이 그냥 Lf, lld로 하지, 귀찮게 %d,%lf 가있는거야" 이런생각하실텐데, 공간의 낭비와 효율성을 위하여 각각 .. 2013. 2. 16.