본문 바로가기

C

빠르게 랜덤변수 발생시키기 int g_seed;int fastrand() { g_seed = (214013 * g_seed + 2531011);return (g_seed >> 16) & 0x7FFF;} 기존에는 아래와 같은 방식으로 랜덤 변수를 생성하였었다.time_t seconds;time(&seconds);srand((unsigned int)seconds);//srand((unsigned)time(0));v0 = rand() % 10; 하지만 이 방식은 초당으로 seed 가 변해서 그런지, 랜덤숫자가 빠르게 변하지 않는 단점이 있다. 이 대신에 fastrand 를 사용하면, 빠른 속도로 랜덤한 변수를 얻을 수 있다. 더보기
C 드라이브 공간확보하기 최대 절전모드 off 해서 공간 확보하기 http://hphphp.co.kr/220484530990win7을 쓰는 나의 경우 무려 8G의 용량이 새로 생겼다. 컴퓨터 -> 속성 -> 등급 -> 디스크 정리 -> c 드라이브 선택 -> 박스전원다 선택 -> 확인(이방법은 ssd 에서는 사용 안하는게 좋지않을까 싶다.) 컴퓨터 -> 속성 -> 등급 -> 디스크 정리 -> c 드라이브 선택 -> 기타 -> 시스템 복원 및 쉐도우 복사본 정리 더보기
헷갈리는 c string 함수들 정리중... strstr은 문자열 중에서 특정 문구를 찾아 그 위치를 반환해 주는 함수특히, 포함된 문자열을 찾는데 유용하다. (strcmp 를 사용하면 안된다 !!) /*strstr */char * strstr(const char * str1, const char * str2); 참조 : http://tapito.tistory.com/313 1. strcat - strcat (string concatenation)은 문자열 2개를 이어 붙이는 역할을 해주는 함수이다. 예컨대, "Love"와 "You"를 합치면 LoveYou가 될 것이다. 이처럼 두개의 문자열을 합쳐주는 함수가 strcat 이다. 이 함수의 사용방법과 내부적인 결과를 자세히 살펴보자. 먼저 함수의 모양을 알아보자. 함수.. 더보기
logcat 사용법 정리 [adb] logcat [] ... [] ... The following table describes the logcat command line options: -c Clears (flushes) the entire log and exits. 전체로그를 삭제하고 빠져나옵니다. -d Dumps the log to the screen and exits. 저장된 로그를 화면에 출력하고 종료한다. -f Writes log message output to . The default is stdout. -g Prints the size of the specified log buffer and exits. 로그버퍼의 사이즈를 출력 -n Sets the maximum number of rotated logs to . T.. 더보기
사전 앞에 U, Prop. 나 C는 무엇일까 U는 Uncountable(셀 수없는)을 줄여서 써 놓은 것으로불가산명사를 뜻해요불가산명사는 복수형으로 쓸 수 없죠 참고로 U와 비슷한 사전용어로는C : Countable 가산명사U : Uncountable 불가산명사U,C : Uncountable, CountableC,U : Countable, Uncountabe이런 것들이 있어요 prop. : Preposition (전치사) 더보기
The cost of inline functions The cost of inline functions [Posted April 28, 2004 by corbet] The kernel makes heavy use of inline functions. In many cases, inline expansion of functions is necessary; some of these functions employ various sorts of assembly language trickery that must be part of the calling function. In many other cases, though, inline functions are used as a way of improving performance. The thinking is that.. 더보기
배열 초기화 선언 int aaaa[10] = {2,}; 로 선언하면 어떻게 저장될까요? ... 정답은 {2, 0, 0, 0, 0, 0, 0, 0, 0, 0} 나는 2로 다 채워주는 줄 알았을 뿐이고..;;; 더보기
c 와 c++ 의 const 내용정리 학생때 쓴 강좌인데 필요로 하시는 분들이 계시내요. 참고 하세요. 아래 static부분이 어서 const 정리 내용입니다. 순서는 다음과 같습니다. 1. const 2. 배열과 const 3. const와 Intenal Linkage 4. 포인터의 const 5. const 함수 6. const 멤버변수 7. const 멤버함수 8. 함수의 파라미터를 (const &)로 쓰자! 빼먹은 부분없이 정리해 볼려고 했는데.. 잘 되었는지는 모르겠내요. 읽어보시고 틀린곳이나 추가할 부분은 지적해 주세요. 많은 도움되길 바랍니다. ^^ =============================================================================== 과거에 상수를 정의할때는 메크로를 썻다.. 더보기
c 와 c++ 의 static 내용정리 학생때 적어놓았던 강좌인데 필요로 하시는 분들이 계시내요. 참고하세요. static와 const를 생각나는데로 죽~ 정리해 봤습니다. static부분 순서는 다음과 같습니다. 1. static 지역변수 - 1 2. static 지역변수 - 2 : 배열/포인터를 리턴하는 함수 3. static 전역변수 4. static 함수 5. static 멤버변수 6. static 멤버함수 빼먹은것 없이 정리할려고 했는데, 잘 되었는지 모르겠군요. 혹시 보시고 틀리거나 잘못된 사항 있으면 지적해 주시구요.. 많은 도움 되었으면 합니다.^^ ================================================================ #include using namespace std; void f.. 더보기
해킹방지를 위한 코딩법 네이버에 이런기사가 뜨다니.. 하핫 x86 에만 적용되는 내용도 있지만.. (예를 들면 break point 에 대한 내용, ARM에서는 bp를 위한 Asm 이 존재하지 않는다) 상당히 잼있는 내용들이다. - 해킹방지를 위한 코딩법 - http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=35757 더보기
전처리기 사용 : define ## 오랫만에 C에 대한 내용으로 포스팅을 하는군요. 개발을 하다 포트 번호에 따라 다른 레지스터를 사용해야 하는 일이 있었는데요. 레지스터를 보니 포트 번호에 따라 숫자만 다르고 같은 문자열을 가지더군요. S3C2410_TCON_T1MANUALUPD S3C2410_TCON_T2MANUALUPD S3C2410_TCON_T3MANUALUPD 이런식의 레지스터가 여러게가 있어서 레지스터가 하나 변경될때마다 여기저기 찾아다니며 수작업을 해주어야 합니다. 포트를 진행하는 모델에 따라 변경해야 하는데 이걸 하드코딩으로 하자니 왠지 폼이 안나구요.. 실수라도 하는 날엔 디버깅으로 날려먹을 시간을 생각하니 먼가 "다이나믹"하게 적용하고 싶더군요. 그래서 아래와 같이 작업을 해 보았습니다. #define PWM_PORT_N.. 더보기
struct 변수 사용 bit 한계 설정하기 다음과 같이 사용이 가능하다. struct i2c_gpio_platform_data { unsigned int sda_pin; unsigned int scl_pin; int udelay; int timeout; unsigned int sda_is_open_drain:1; unsigned int scl_is_open_drain:1; unsigned int scl_is_output_only:1; }; 이것의 의미는 해당 변수에서 오로지 N bit 만 사용하겠다는 의미 이다. 즉, 변수 사용상의 명확성을 준 것이다. 그리고 선언시에만 가능하다. 간단히 Test code 를 보자. // 각각 1, 2 ,3 bit 만 사용하도록 set struct AAA{ unsigned int a:1; unsigned int .. 더보기
[TIP] easy mistake casting buffer 사이즈가 다른 배열을 케스팅 하면 어떨게 될까? unsigned short (size 2 byte) 0x1234 0xabcd 0x00ff 0xff00 ==> casting char (size 1 byte) ? ? ? ? ? ? ? ? 쉽게 다음을 생각할 수 있을것입니다. 0x12 0x34 0xab 0xcd 0x00 0xff 0xff 0x00 하지만, 결과는 다르다는것.. byte ordering 의 차이가 있기 때문이지요. int i=0; unsigned short temp_data[4]={0x1234, 0xabcd, 0x00ff, 0xff00}; unsigned char* pConData = (unsigned char*)temp_data; unsigned char buf[2]; printk("[CAM].. 더보기