Programing/C Language15 문자열 뒤집기(reverse) #include #include #include void reverse(char * pStr); void main(){ char str[100]; printf("Input string : "); gets(str); reverse(str); printf("Reverse sting : %s\n", str); system("PAUSE");} void reverse(char * pStr){ int nLen = strlen(pStr); int nLoop = 0; char * tmp = NULL; for(nLoop=0; nLoop 2014. 1. 21. ASCII 코드표(아스키코드표) 2014. 1. 21. 구구단 최적화 코딩 출력 모습 1단 2단 3단 4단 5단 6단 7단 8단 9단 10단 소스 [출처] 03. 최적화 구구단|작성자 빅터크룸 #include stdio.h> void main() { int nLoop_1; int nLoop_2; int nLoop_3; for(nLoop_1=1 ; nLoop_1 2014. 1. 21. 단일 연결 리스트(Single Linked List) #include stdio.h> #include stdlib.h> #define CLS system("cls") #define PAUSE system("pause") #define SAFE_FREE(a) if(a){free(a); a=NULL;} #define MALLOC (Node *)malloc(sizeof(Node)) #define ALL 0 #define ONE 1 typedef struct _Node { int m_nData; struct _Node *m_pNext; }Node; void LinkedList_DisplayNode (Node *pHead, int nCase); void LinkedList_AddNode (Node **ppHead, int nData); void LinkedList_.. 2014. 1. 21. 이중 연결 리스트(Double Linked List) #include #define CLS system("cls") #define PAUSE system("pause") #define RELEASEIF(a) if(a){free(a); a=NULL;} #define MALLOC(x) x=(Node *)malloc(sizeof(Node));if(x == NULL){printf(" Malloc is failed!!\n");return;} #define ALL 0 #define ONE 1 #define FORWARD 1 #define REVERSE 2 #define FIRST 1 #define LAST 2 #define SELECT 3 typedef struct _Node { int m_nData; struct _Node *m_pNext; struct _Node .. 2014. 1. 21. 이중 연결 리스트 + 이진 트리(Double Linked List + Binary Tree) /*************************************************************************** COPYRIGHT(c) 2010 XXX Co., Ltd. **************************************************************************** * * Workfile : DLL_And_BT.c * Revision : Rev. 0.1 * Date : Fri Mar 26 2010, 18:59:40 * Author : Victor * **************************************************************************** * * File Description * -------.. 2014. 1. 20. File RW (파일 읽고 쓰기) /*************************************************************************** COPYRIGHT(c) 2010 XXX Co., Ltd. **************************************************************************** * * Workfile : FileRW.c * Revision : Rev. 0.1 * Date : Mon 06.14.2010, 12:11:00 * Author : Victor * **************************************************************************** * * File Description * ------------.. 2014. 1. 20. C언어의 메모리 구조 1. 스택, 힙, 데이터 영역 프로그램을 실행시키기 위해서는 메모리 공간이 필요하다. 그래서 컴퓨터는 프로그램의 실행을 위해 메모리 공간을 할당해 준다. 이렇게 해서 할당디는 메모리 공간은 크게 스택, 힙 , 데이터 영역으로 나뉜다. 할당 시기 : 프로그램이 실행될 때마다할당 장소 : 메인 메모리에 할당되는데 메인메모리는 RAM이다할당 용도 : 프로그램 실행 시 필요한 메모리 공간의 할당을 위해서 ------------------------------------------------------------|전역변수 | 프로그래머 할당 | 지역변수,매개변수|static 변수 | | |------------------------------------------------------------|데이터영역 힙 영.. 2014. 1. 20. C언어 기본 문법 재 정리!! 서식문자서식문자의미기능\nnewline출력 위치를 다음 줄의 첫번째 칸으로 옮긴다\ttab출력 위치를 다음 탭 위치로 옮긴다\rcarriage return출력 위치를 현재 줄의 첫번째 칸으로 옮긴다\bbackspace출력위치를 한 칸 뒤로 옮긴다\aalert경고음을 낸다 줄바꿈 문자는 아스키 코드값이 10으로, \012(8진수, 접두어 없어도 8진수 해석), \x0a(앞의 x로 16진수임을 확인)으로도 가능하나, 쉽게 사용할 수 있도록 \n을 사용하게 만든것이다. 논리연산자 논리 연산자논리부정 ( !) - NOT수식이 0의 값을 가질때 논리부정을 시키게 되면 1이고 , 1의 값을 가질 때 하게 되면 0이다.논리곱 (&& ) - AND : ex ) a && ba , b 둘 다 참(1) 일 때 참( 1 ) .. 2014. 1. 20. MOD(%) 연산의 AND(&) 연산으로의 처리 1. MOD(%) 연산의 AND(&) 연산으로의 처리 다음의 글은 일반적으로 프로그램 시에 나머지를 구하기 위해 사용하는 MOD(%) 연산을 AND(&) 연산으로 처리하는 방법과 그 효율에 대한 테스트 결과입니다. ※ 전제 조건2의 배수를 몫으로 갖는 MOD(%) 연산 처리의 적용 다음의 [표 1]은 해당 연산자들의 성능 테스트 결과입니다. 연산/회수100회1,000회5,000회10,000회50,000회MOD(%)0 ms15 ms94 ms156 ms797 msAND(&)0 ms0 ms15 ms47 ms219 ms [표 1] 각 연산별 수행 시간 위의 [표 1]에서와 같이 각 연산의 처리 시간을 보면, 그 성능 차이를 확인할 수 있을 것입니다. 서버의 경우 쉼 없이 동작하기 때문에 만약 해당 연산 처리가 .. 2014. 1. 20. #ifdef(if defined)와 #if defined #ifdef(if defined)와 #if defiened는 같은 내용!! 다만, 사용 용도에 따라서, #if defined같은 경우는 여러개의 매크로 정의를묻고자 할때 사용하는 것이다. 예)#ifdef #define WRITE_BLOG#define READ_BLOG #ifdef(WRITE_BLOG){ #ifdef(READ_BLOG) { printf("sdfj'); #endif#endif #if((defined WRITD_BLOG) && (defined READ_BLOG))printf(""sdlfj"); ifdef ==if !defined 2014. 1. 20. EPOLL API 소개 및 Echo Chat Server epoll은 poll의 일종이며 edge trigger 인터페이스 또는 level trigger 인터페이스로서 사용하는 것이 가능하고 감시하는 파일 디스크립터의 수가 많은 경우에도 사용할 수 있다. epoll 세트를 설정하거나 제어하거나 하기 위해서 다음의 3개의 시스템 콜이 제공되고 있다.epoll 세트는 epoll_create 으로 작성되는 파일 디스크립터에 접속된다. 그리고 특정의 파일 디스크립터에 대한 관심 (역주: 어떤 이벤트를 감시할까 등)을 epoll_ctl 로 등록한다. 마지막에 epoll_wait 로 실제의 이벤트 대기를 개시한다. EPOLL의 핵심 API 함수 int epoll_create(int size); epoll_create()는 이벤트를 저장하기 위한 size만 큼의 공간을 커.. 2014. 1. 20. 이전 1 2 다음