본문 바로가기

Programming/C/C++19

C++ 기초 [2] [ 함수 오버로딩 ] C의 경우는 호출한 함수를 찾을 때 "함수의 이름"을 사용하지만 C++의 경우에는 "함수의 이름"과 "매개 변수"를 사용한다. 따라서 함수 이름이 같더라도 "매개 변수"를 이용하여 함수를 구별할 수 있게 된다. 이 특성을 이용해서 매개변수의 개수, 자료형를 다르게 하여 동일한 이름의 함수를 정의하는 것을 C++의 함수 오버로딩(Fuction Overloading)이라고 한다. (반환형은 오버로딩과 무관) ex) void test(int a){ ... } void test(char a){ ... } void test(char a, char b){ ... } [ 인라인 함수 ] #define test(a) ((a)*(a)) C에서 위와 같이 매크로 함수를 정의하여 사용하면 전처리기에 의.. 2013. 2. 26.
C++ 기초 [1] 1) C++에서는 표준 헤더파일의 선언에서는 확장자를 생략하기로 되어 있다. 헤더파일 선언문 : #include 는 과거의 표준 입출력 라이브러리 및 헤더이고 은 새로운 표준 입출력 라이브러리 및 헤더를 의미한다. 2) C++에서의 입력과 출력으로 cout, cin를 사용한다. cout'변수'; 3) C++에서는 지역변수의 선언 위치에 제한이 없다. (C의 경우 불가능하나 C의 새로운 표준에서는 가능) 2013. 2. 26.
Unix 입출력 [ read/write - recv/send ] read/write ssize_t read(int fd, void *buf, size_t count); (엔터값도 저장함.) ssize_t write(int fd, const void *buf, size_t count); recv/send : socket 전용 ssize_t recv(int s, void *buf, size_t len, int flags); ssize_t send(int s, const void *buf, size_t len, int flags); 2012. 11. 30.
함수 포인터 사용 함수 포인터는 말 그래도 함수를 가리키는 포인터이다. . . #include int add(int x, int y) { return x+y; } void main() { int (*padd)(int,int); padd = add; //함수 포인터 padd는 add라는 함수를 가리킨다. printf("1 + 3 = %d \n", padd(1, 3)); } int (*padd)(int,int); 는 함수포인터 padd를 선언했다. padd는 반환형이 int이며 인자값으로 int형 파라미터 2개를 받는 함수 형태에 대해서만 가리킬 수 있다. 나는 쉘 코드 테스트나, DLL에서 GetProcAddress에 주로 사용한다. GetProcAddress를 사용한다 치면 함수 포인터의 반환형은 (int((*)(int,.. 2012. 9. 23.