분류 전체보기
[c] define으로 함수 선언하기
1.zip.c를 분석하다가 zip.h에 define으로 함수가 많이 선언되어 있는 것을 보고 실험 시작. 2.보통 define으로 함수를 만들면 swap을 많이 만든다.따라서 하나 만들어 보았다. #include #define swap(a,b) {char temp =(a); (a) = (b); (b) = temp;} int main(int argc, char *argv) { char a = 'a'; char b = 'b'; swap(a,b); printf("%c , %c\n",a ,b); return 0; } 여기서 얻은 결론은 define의 함수는 순서대로 실행된다는 것.
Ctags 설정 및 사용법
ctags 알아보기 출처 : http://sungto.tistory.com/trackback/34 ------------------------------------------------------------------------------------------------------------------------------------------------------ == 간단한 ctags 명령어 목록 == :ta [name] :: name과 일치하는 태그 위치로 이동 ctrl + ] :: 커서가 위치하고 있는 함수나 구조체의 정의로 이동 ctrl + t :: 이전 위치로 돌아오기 :ts [name] :: name과 일치하는 태그 목록 출력 :ta /[name]:: name과 일치하는 태그 목록 출력 :t..
[펌] zlib를 사용법
출처 : http://code.oopman.com/102 현재 일반적인 데이터를 압축하기 위해서 사용되는 가장 일반적인 라이브러리 도구는 zlib로써 압축을 위한 사실상의 표준라이브러리로써 운영체제를 불문하고 압축을 필요로 하는 대부분의 애플리케이션에서 사용되어지고 있다. 이 문서는 zlib를 이용해서 압축프로그래밍을 하는데 있어서 중요한 함수들에 대한 레퍼런스를 제공한다. 더불어 간단한 예제들도 준비하고 있다. Zlib 활용윤 상배dreamyun@yahoo.co.kr 차례1절. 소개2절. Zlib를 이용한 압축 프로그래밍2.1절. 유틸리티 함수설명2.1.1절. compress2.1.2절. compress22.1.3절. uncompress2.1.4절. gzopen2.1.5절. gzdopen2.1.6절. ..
[펌] Zip 알고리즘
출처 : http://code.oopman.com/103 zlib를 이용한 zip 압축 기능 구현 테스트 프로그램.단순 압축 기능만 콘솔 프로그램으로 구현해본 것입니다. 소스는 다음과 같습니다. /* * 파일명 : ZipTest.cpp * 사용법 : ZipTest [filename] * 압축하고자 하는 filename를 입력하면 filename.zip이라는 압축파일이 * 생성된다. */ // 표준 C헤더파일#include #include #include // zlib 헤더파일 #include int main(int argc, char *argv[]){char *filename = NULL;char *gzfilename = NULL;gzFile zf;int n;char buf[256];int lerrno;..
[zlib] deflate algorithm에 대해서
1.deflate는 압축이다. 2. 압축 연산은 3가지의 함수로 이루어 진다. deflateInit - 메모리 할당 및 내부 상태 변수 할당 deflate - 실제 압축 deflateEnd - 할당 메모리 소거 3.z_stream stream;stream.zalloc = Z_NULL; // 메모리를 할당하는 함수를 지정해 달라는 것, 함수 포인터를 넣어야한다. 기본적으로 사용하는 메모리 할당을 사용하겠단 것이다.stream.zfree = Z_NULL; // 메모리를 해제할 때 사용하는 함수 포인터를 설정stream_opaque = Z_NULL; //함수 포인터의 아규먼트를 전달 하도록 되어 있다. 이 3 인자는 하나로 돌아가는 연관이 되어 있다. deflateInit( &stream, z스트림 압축 le..
[zlib] zlib에 대해서 (1)
1.zlib을 쓸일이 있어서 공부하게 되었다.zlib을 어느정도로 깊이 공부해야 하는지도 모르기 때문에 이제 시작~ 2.위키에서 찾아보니깐 'C로 작성된 데이터 압축 라이브러리' 라고 한다.(http://ko.wikipedia.org/wiki/ZIP_(%ED%8C%8C%EC%9D%BC_%ED%8F%AC%EB%A7%B7))한국 위키에선 별 다른 이야기가 없다. 미국 위키로 가보자. 3.미국 위키는 Contents 부분만 한국보다 많다.(https://en.wikipedia.org/wiki/Zlib) 근데 들어도 표면적인거라 그냥 넘겨들었다.그래서 홈페이지에가서 직접 보기록 한다. 4.사이트에서 처음 살펴볼 부분은 3부분인것 같다.1. http://zlib.net/manual.html2. http://zli..
[c++] pointer로 선언 후에 pointer를 그대로 넘겨서 pointer에 담아 사용하기
1. 아까부터 계속 포인터에 대해서 연구하고 있다. 2.다시 한번 코드를 만들어 보자. test 벤치 그러니깐 잘 작동하더라.. 내 문제가 이 문제가 아니였다.한참 후에 발견한건데 헤더파일이 추가 되지 않은 class가 선언되어 사용되도 아무 에러도 안뜨더라. #include void passPointer(int *pass) { int *passed; passed = pass; printf("%d\n", *passed); } int main(int argc, char *argv[]) { int *pInt; pInt = new int; *pInt = 5; passPointer(pInt); return 0; }
[c++] 스택에 저장된 곳을 다른 함수가 주소를 받아서 사용할 수 있을까?
1.코드로 실험해보기로 한다. 2. 아래 코드와 같다. #include #include void pass(pthread_mutex_t *pMutex) { printf("pass : %p\n", pMutex); } int main(int argc, char *argv[]) { pthread_mutex_t m_mutex; printf("main : %p\n", &m_mutex); pass(&m_mutex); return 0; } 결과main : 0xbf9a5d64pass : 0xbf9a5d64 두개가 동일한 주소를 가리키고 있다. 3. 그러면 조작도 가능할까? #include #include void pass(pthread_mutex_t *pMutex) { printf("pass : %p\n", pMutex..