본문 바로가기

[고급씨언어] delete 처리 하기 위한 goto 이용법 28 void foo() 29 { 30 FILE * fp = fopen("1.txt","r"); 31 if(fp == NULL) 32 { 33 goto delete_ok; 34 35 } 36 FILE * fp2; 37 if(fp2 == NULL) 38 { 39 goto delete_fp1: 40 } 41 42 FILE * fp3; 43 44 45 delete_fp2: 46 fclose(fp); 47 delete_fp1: 48 fclose(fp1); 49 delete_ok: 50 return ; 51 } 더보기
[안드로이드] Gesture Like it or not touch screens are becoming part of both developers and users life, i mean dont think i would buy one of Those uncool phones without touchscreen unless i really have to, would you? but the important point is that what is the Touchscreen use if applications doesn't support touchscreen interaction, in other words who is really gonna pay for a ,say, Picture management application if i.. 더보기
[Device]_vs1033 더보기
[고급C언어] 연산자 우선순위 연산자 우선순위 및 결합순서 컴퓨터언어는 개발자를 비롯한 컴퓨터 과학/공학자들의 요구에 따라 다양하게 진화되었다. 최대한 인간의 일반적인 사고를 바탕에 두고 문법과 체계를 만든 것이지만, 아무래도 언어 개발자들의 마인드가 포함되어 있어 일반에게는 약간 어렵기도 한 것 같다. 다음은 C++ 연산자 우선순위표이다. 이것을 잘 알아야, 복잡한 포인터와 구조체, 배열이 섞인 복잡해 보이는 식도 기계적으로 풀어낼 수 있다. 그러므로 다음은 반드시 암기 가능하면 이해할 사항이다. 간략본(http://www.winapi.co.kr/clec/cpp1/5-4-1.htm) 순위 연산자 결합순서 1 ( ) [ ] -> . 왼쪽 우선 2 ! ~ ++ -- + -(부호) *(포인터) & sizeof 캐스트 오른쪽 우선 3 *(.. 더보기
[LS3S8962]_Inter-Integrated Circuit (I2C) Interface LM3S8962의 I2C 인터페이스에 대하여 알아본다. 우선 Luminary 홈페이지에서 LM3S8962 Datasheet를 다운 받는다. Link : http://www.luminarymicro.com/products/LM3S8962.html#Datasheet 위의 링크에서 datasheet 및 각종 App Note, Software tool 등을 다운 받을 수 있다. Datasheet를 토대로 LM3S8962 I2C 인터페이스에 대하여 분석해 보도록 한다. Inter-Integrated Circuit (I2C) Interface I2C 버스는 two-wire를 통해 양방향 데이터 통신을 제공하고 serial memory, networking devices, LCDs, tone generators 등과.. 더보기
[고급C언어] void형 포인터 - void * voidp ① void형 포인터란? 널 포인터는 아무것도 가리키지 않은 포인터였다. void형 포인터도 같은 의미로 착각하면 안된다. void형 포인터는 어느 것이든 가리킬 수 있는 포인터이다. 좀더 늘여 쓴다면 "void형 포인터는 현재 가리키고 있는 대상체가 정해져 있지 않은 포인터"가 된다. void *imsip; imsip는 void형 포인터 변수이다. imsip는 가리키는 대상체가 정해져 있지 않은 포인터 변수라고 정의하였다. imsip는 포인터 변수이기 때문에 imsip 안에는 분명 주소 값이 저장되어 있을 것이다. 이것은 현재 어떠한 대상체를 가리키고 있는가? 이 말을 다시 풀이하면 "현재 가리키고 있는 주소 값에서 몇 바이트를 읽어올 것인가?"와 같은 질문이 된다. imsip 자체는 가리키는 대상체가.. 더보기
[고급C언어] *((int*)voidp)++ int imsi[]={7, 4, 9}; void *voidp; voidp=imsi; for(i=0;i 더보기
[고급C언어] 함수포인터 ① 함수 포인터의 정의 함수를 가리키는 포인터를 정의하는 것은 여타의 포인터 변수 정의처럼 상당히 쉬운 작업이다. type (*name)(arg list); name은 함수를 가리킬 수 있는 포인터 변수이다. (그러므로 name에 대한 4바이트가 할당된다.) "type"은 name이 가리키는 함수가 리턴하는 형(type)을 말하고 "arg list"는 name이 가리키는 함수의 매개변수 리스트이다. int (*imsi)(int, char *); imsi가 가리키는 함수는 int형을 리턴하고 인자로 "int"와 "char *"를 가진다. ② 함수 포인터 호출 함수 포인터를 초기화 한다는 것은 만들어 놓은 함수 포인터 변수에 함수를 대입하는 과정이다. 함수를 대입한다기 보다는 함수가 저장된 곳의 번지를 할당.. 더보기
[고급C언어] 연산자의 우선순위 우선순위 연산자 처리순서 ↑높음 ↓낮음 ++ -- +(부호연산자) -(부호연산자) ~ ! 캐스트 연산자 ← * / % → +(덧셈 연산자, 문자열 연결 연산자) -(뺄셈 연산자) → >>> → = → == != → & → ^ → | → && → || → ?: ← = += -= *= /= %= &= |= ^= >= >>>= ← 더보기
[고급C언어] 매크로함수, #ifdef, #ifndef, #undef, #if, #elif, #else, #endif - #if, #elif, #else, #endif문 조건부 컴파일을 위한 것으로 특정 조건이 만족하면 컴파일 작업을 수행하고 그렇지 않으면 수행하지 않도록 하기 위해 사용된다. 조건부 컴파일을 위한 전처리 지시자 살피기 #include #define MAX 20 void main() { int size; #if MAX > 100 size=100; #elif MAX > 10 size=10; #else size=0; #endif printf(" size = %d \n", size); } - #ifdef, #ifndef문 특정 매크로가 정의되어 있는지를 확인하기 위해 사용된다. #ifdef문은 특정 매크로가 정의되어 있는지를 물어 본다. #ifndef문은 “if not define”, 특정 매크로가 정의되어 .. 더보기