본문 바로가기

Programming/C, C++

(14)
[C++] 파일 분할 작성 헤더파일에는 클래스의 선언을, cpp 파일에는 클래스의 정의를 작성한다. 클래스의 선언은 멤버변수의 선언과 멤버함수의 원형을 포함하게 되고, 클래스의 정의는 멤버함수의 구현부로 이루어져 있다. Test.h 소스코드 #ifdef __TEST_H__ #define __TEST_H__ class Test { private: char ch[10]; int test; public: void testing(char* ID, int number); }; #endif Test.cpp 소스코드 #include #include #include "Test.h" using namespace std; void Test::testing(char* ID, int number) { ~~~~ } Main.cpp 소스코드 #include
[C] assert 매크로 assert 매크로는 assert.h 헤더 파일에 정의되어 있으며 정해진 조건에 맞지 않는 경우 프로그램을 중단한다. 1. assert에 지정한 조건식이 거짓(false)일 때 프로그램을 중단2. assert에 지정한 조건식이 참(true)일 때는 프로그램을 계속 실행 단, Visual Studio 에서는 Debug 모드에서만 작동하며 Release 모드에서는 동작하지 않음 포인터가 NULL이면 프로그램을 중단하는 예제 #define _CRT_SECURE_NO_WARNINGS #include #include #include // assert가 정의된 헤더 파일 void copy(char *dest, char *src) { assert(dest != NULL); // dest이 NULL이면 프로그램 중단 ..
[C++] goto 문 C++ goto 문 사용법 goto identifier; identifier에 의해 지정된 레이블 문은 현재 함수에 존재해야 하며, 가급적 goto 문 보다는 break, continue 및 return 문을 사용하는 것이 좋은 프로그래밍 스타일이라고 한다. 그러나 break 문은 한 수준의 루프만 종료하므로, 중첩이 잦은 루프를 종료하고 싶을 때는 goto 문을 사용한다. goto 문 예제 // goto_statement.cpp #include int main() { int i, j; for ( i = 0; i < 10; i++ ) { printf_s( "Outer loop executing. i = %d\n", i ); for ( j = 0; j < 2; j++ ) { printf_s( " Inner..
[C++] 조건부 연산자 조건부 연산자 사용법 expression ? expression : expression 조건 연산자(? :)는 피연산자 3개를 사용하는 삼항 연산자이다. 조건 연산자는 다음과 같이 사용된다. - 첫번째 피연산자는 암시적으로 bool 자료형으로 변환된다. - 첫번째 피연산자가 true(1) 이면 두 번째 피연산자가 계산된다. - 첫번째 피연산자가 false(0) 이면 세 번째 피연산자가 계산된다. 조건 연산자의 결과는 두 번째 또는 세 번째 피연산자가 계산된 결과이다. 마지막 피연산자 2개 중 1개만 조건식에서 계산된다. 조건식은 오른쪽과 왼쪽이 연결되어있으며, 첫번째 피연산자는 정수 계열 또는 포인터 형식이어야 한다. 조건부 연산자 예제 // expre_Expressions_with_the_Conditi..
[C, C++] 메모리 함수 memset, memmove, memcpy, memcmp, memchr 자주 쓰이는 메모리 함수 정리 * memset 메모리 블록을 채운다. ptr로 시작하는 메모리 주소로부터 num 개의 바이트를 value 값으로 채운다. 이 때 value는 unsigned char 로 형변환 된다. #include // C++ 에서는 void * memset ( void * ptr, int value, size_t num ); memset 예제 #include #include int main () { char str[] = "almost every programmer should know memset!"; memset (str,'-',6); puts (str); return 0; } 실행 결과 ------ every programmer should know memset! * memmov..
[C++] 반복자 (Iterator) C++ 반복자(Iterator) C++ 라이브러리는 반복자를 제공하는데 이것을 사용하면 라이브러리의 방식대로 자료구조를 액세스 할 수 있다.따라서 라이브러리가 효과적으로 동작한다는 것을 보장 할 수 있다는 장점이 있다. 즉, 포인터와 상당히 비슷하며, 컨테이너에 저장되어 있는 원소들을 참조할 때 사용한다. 추상적으로 말하자면, 반복자란 컨테이너에 저장되어 있는 모든 원소들을 전체적으로 훑어 나갈 때 사용하는, 일종의 포인터와 비슷한 객체라고 할 수 있다. 알고리즘 마다 각기 다른 방식으로 컨테이너를 훑어가기 때문에, 반복자에도 여러가지 종류가 있게 된다. 반복자의 성질 - 컨테이너와 컨테이너 안의 있는 요소를 구별- 요소의 값 확인- 컨테이너 안에 있는 요소들 간에 이동할 수 있는 연산 제공- 컨테이너가..
[C++] 자료형의 종류와 범위 그리고 WORD 와 DWORD 기본 자료형의 종류 구분 자료형 크기(byte) 범위 문자형 char 1 byte -128 ~ 127 unsigned char 1 byte 0 ~ 255 정수형 __int8 1 byte -128 ~ 127 __int16 2 byte -32,768 to 32,767 unsigned int 2 byte -32,768 to 32,767 (signed) short (int) 2 byte -32,768 to 32,767 (unsigned short (int) 2 byte 0 ~ 65,535 __int32 4 byte -2,147,483,648 ~ 2,147,483,647 (signed) int 4 byte -2,147,483,648 ~ 2,147,483,647 unsigned int 4 byte 0 ~ 4,294..
[C, C++] 프로그램 수행시간 측정 프로그램 수행시간 또는 실행시간 측정하는 법 프로그래밍 중 특정 구간에서 코드 실행 시간을 알아내야 하는 경우에 쓰이는 방법이다. C 또는 C++ 에서 프로그램 실행시간을 측정하는 방법은 크게 두 가지로 나뉘어 사용된다. 1. time 함수 이용하기 #include 헤더파일을 포함시키고 아래와 같이 사용한다. 이와 같은 방법은 ms 단위가 아닌 초(s) 단위로 측정된다. #include #include int main() { time_t start, end; double result; start = time(NULL); // 수행 시간 측정 시작 /* 수행시간 측정하고자 하는 코드 */ end = time(NULL); // 시간 측정 끝 result = (double)(end - start); // 결과..
[C] printf 출력형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G printf 출력 형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G type (형) : 인수의 형을 지정 dint값을 부호있는 10진수로 출력id와 같음uint값을 부호없는 10진수로 출력Xint값을 부호없는 16진수로 출력 10~15은 'A'~'F'로 표시xint값을 부호없는 16진수로 출력 10~15은 'a'~'f'로 표시oint값을 부호없는 8진수로 출력p포인터값을 16진수로 출력s문자열 출력cint값을 문자로 출력Cc와 같음fdouble값을 소수로 출력 (예:12.566371)edouble값을 지수로 출력 (예:1.256637e+001)Ee와 같음 'e'가 'E'로 표시 (예:1.256637E+001)。g숫자값의 크기에 따라 f나 e로 출력 (예:12.5664、..
[C] 포인터 C언어에서 포인터는 변수의 메모리 주소를 이용하여 함수를 넘나들며 값을 저장하기 위해 사용된다. 즉, 포인터는 값의 주소를 저장하기 위해 사용된다. 포인터 변수는 다음과 같이 * ( Asterisk, 애스터리스크)를 사용하여 선언된다. * 의 위치에 따른 차이는 없으며 모두 같은 뜻이다. int* numPtr; int * numPtr; int *numPtr; 포인터 변수를 선언했다면 아래와 같이 &로 변수의 주소를 구해서 포인터 변수에 저장한다. numPtr = # 즉, 포인터는 메모리의 특정 위치를 가리킬 때 사용한다. 아래 코드는 numPtr 이라는 포인터 변수가 int 형 변수 num 이 있는 공간을 가르키는 예제이다. numPtr이 가르키는 값을 변경할 경우 변수 num의 값도 당연히 변경..