반응형

ITStory 118

Modifier[제어자]

제어자(Modifier) ◆◆제어자란?◆◆ 제어자(Modifier)는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 그리고 제어자의 종류는 크게 접근제어자와 그 외의 제어자로 나눌 수 있다. 접근제어자 - public, protected, default, private 그 외 - static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근제어자는 한번에 네 가지 중 하나만 선택해서 사용할 수 있다. 즉, 하나의 대상에 대해서 public과 private을 함께 사용..

JAVA 2010.12.29

- 연결리스트 -

쉽지만 어렵고도 이해하기 힘든것중에 하나 인것같다. -단순 연결리스트 연결리스트와 동적배열은 완전히 용도가 같은 자료구조로서 서로 대체가능하지만 구성원리나 관리방법은 질적으로 다르다. 연결리스트의 대체 자료구조는 배열이 아니라 동적 배열이다. 연결리스트의 요소인 노드는 데이터 외에 연결상태에 대한 정보인 링크를 추가로 가져야 한다. 자기 다음의 요소가 누구인지를 스스로 기억하고 있어야 흩어져 있는 노드들의 순서를 알수 있는데 이 연결 정보를 저장하는 것이 바로 링크이다. 링크를 하나만 가지는 것을 단순 연결리스트라하고 두개의 링크를 가지는 것을 이중연결 리스트하고 한다. 노드를 구성하는 데이터와 링크는 타입이 다르기 때문에 노드는 이형타입의 집합체인 구조체로 정의 된다. struct Node { int ..

C 2010.12.29

- 동적배열 - malloc()

배열은 C언어가 제공하는 가장 기본적인 자료 구조이며 워낙 단순하기떄문에 누구나 쉽게 익숙해질수 있다. 배열의 장점은 두가지로 나눌수 있다. 첫번째는 구조가 단순 하기때문에 정보자체를 기억하는 메모리외에 추가로 소모하는 메모리가 전혀없어서 공간효율이 좋다. 둘째로 아무리 배열크기가 커지더라도 검색속도가 일정하다는것이다. 이러한 장점에도 단점이 있는데 배열요소가 연속된 메모리공간에 배치되어 있어야 하므로 중간의요소를 삭제하거나 새로운 요소를 삽입할수 없다는 것이다. 배열은 일반적으로 삽입, 삭제가 안되는것으로 알려져 있다. 하지만 이것은 일종의 고정관념이다. 방법을 찾아보면 불편하기는 하지만 불가능 한것은 아니다. 중요한것은 미리 선언해놓은 크기이상 집어넣기가 불가능하다. 소스를 고치면되지만 불편하다. 만..

C 2010.10.21

- 함수 포인터 , void형 포인터 -

프로그래머가 정의한 모든 함수는 프로그램 실행 시 메인 메모리(main memory)에 올라가게 된다. 메모리 상에 올라간 다음에 실행이 가능하기 때문이다. 이때 함수의 이름은 메모리 상에 존재하는 함수의 위치를 가리키는 주소 값을 의미한다. 즉, "함수의 이름은 메모리상에 존재하는 함수의 위치를 가리키는 포인터"이다. 그럼 함수의 이름이 주소 값을 지니는 포인터라면, 함수의 이름과 동일한 타입의 포인터 변수를 선언해서 그 값을 저장할 수 있지 않을까? 이러한 기능을 하는 포인터를 가리켜 함수 포인터라 한다. (2) 함수 포인터의 포인터 타입은 어떻게 되는가? 함수 이름의 포인터 타입을 결정짓는 요소는 리턴형과 전달인자다. int fct1 (int a) // 맨 왼쪽은 리턴형, 맨 오른쪽 괄호 안은 전달..

C 2010.10.20

- #pragma -

일단 전처리 명령어 인것을 알아두자. 컴파일할대 플랫폼이 틀려지거나 CPU가 틀려지건자 하면 컴파일 옵션을 주게되는데 pragma 가 그런 역활을 한다. 옵션을 보면 once : 해당 소스가 한번만 include되게 하여 여러번include되는것을 컴파일러 차원에서 막아준다. 즉 컴파일 시간을 줄일수 있다. comment(lib, *) : comment로 사용할수 있는 명령은 여러개가 있는데 그중 대표적인것이 lib 이므로 해당 라이브러리를 링크 시켜준다. data_seg : dll에서 데이터를 공유하고자 할때 사용된다. warning : 특정 warning을 체크하지 않는다. 예)warning(disable : 4705) => 4705번 warning은 나타자지 않는다. message : 컴파일시 특정..

C 2010.10.20

- 비트 연산자 -

-2-다.비트 연산자 비트 연산자는 논리 연산자와 비슷하지만 비트를 연산 대상으로 한다는 점이 조금 다르다. 비트(bit)란 기억 장치의 최소 단위로서 1 또는 0을 기억하며 8개의 비트가 모여야 1바이트가 된다. 32비트의 정수 1234는 16진수로는 0x4d2이며 메모리에 다음과 같이 기억된다. 32비트이므로 32개의 비트가 있고 이 각각의 비트가 1이나 0을 기억함으로써 1234라는 숫자 하나를 저장하는 것이다. 비트 연산자는 이 그림에서 각 격자인 비트들을 대상으로 조작을 한다. 비트가 연산대상이라는 말은 두 피연산자의 대응되는 비트끼리 연산해서 그 결과를 리턴한다는 뜻이다. 일상 생활에서 쓰는 십진수와는 다른 이진수 차원의 연산이라 다소 어려운 것처럼 보이겠지만 막상 다 이해하고 나면 이진수만큼..

C 2010.10.18

- goto문 -

일단 goto문의 가장 큰 단점은 프로그램의 흐름을 복잡하게 만든다. goto문의 사용은 가급적 자제하는 것이 좋다는 의견이 많다. goto문은 이동할 위치를 지정 해놓고 지정된곳으로 이동시켜주는 함수이다. 이동할 위치를 의미하는 레이블을 선언 해야하며 goto문을 통해서 이동할 레이블을 지정 해주면 되는 것이다. 예를한번 보자.ㄴ #include int main() { int num; printf("숫자 입력 : "); scanf(%d", &num); if(num == 1) goto label1; //label1이라는 레이블로 이동하라는 의미이다. elseif(num == 2) goto label2; //label2이라는 레이블로 이동하라는 의미이다. else goto label3; //label3이라..

C 2010.10.18

[업무일지]20101004-임종현

@Lowlevel.c@ void lowlevel_init(void) //16line 선택적 컴파일 { unsigned char i = 0; /////////////////////////////////////////////////////////////////////////// // EFC Init /////////////////////////////////////////////////////////////////////////// #ifdef AT91SAM7S512 //선택적 컴파일--AT91SAM7S512가 define(정의)되면 밑에 두줄을 포함한다.. AT91C_BASE_MC->MC0_FMR = AT91C_MC_FWS_1FWS; // 1 Wait State to work at 48MHz AT91C_B..

School Study 2010.10.18

[업무일지]20100930-임종현

오전- Android- •arItem 컬렉션을 초기화하고 어댑터에 전달, 리스트 뷰와 연결한다. •어댑터는 원본을 읽어 타입에 맞는 뷰를 생성하고, 리스트 뷰는 리턴된 뷰를 표시한다. ============================================================= public class ListOfViews extends Activity { ArrayList arItem; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedIntanceState); setContentView(R.layout.listtest); arItem = new ArrayList(); arItem.add(new ListItem(0..

School Study 2010.09.30

[업무일지]20100928

dlr => 어셈블러 명령어 LDR은 load 명령이다. LDR에는 불러오는 변수의 크기에 따라 LDRB, LDRH, LDR의 세가지 종류가 있다. LDRB는 byte 변수를 불러올 때, LDRH는 short 변수를 불러올 때, LDR은 int 변수를 불어올 때 쓴다. STR는 store 명령으로 마찬가지로 STRB, STRH, STR 이 있다. 첫 번째 인자는 레지스터가 두번 째 인자는 주소가 된다. 세 번째 인자는 load/store 연 산을 한 다음 주소값을 증가시키고자 할 때, 얼마만큼 증가시킬 지를 지정한다. ==================================================================== b => 중계(branch) ====================..

School Study 2010.09.29
반응형