인터페이스

2004/12/13 20:57
Ⅰ 개념
1. 두 개의 서로 다른 대상간의 공통된 경계
2. 라이브러리의 구현과 그 라이브러리를 사용하는 프로그램간의 경계
3. 라이브러리를 구현하는 프로그래머와 라이브러리를 사용하는 프로그래머간의 협약을 나타냄.
4. C에서 인터페이스는 전형적으로 header file(.h)로 표현됨

Ⅱ 라이브러리 개발
1. 인터페이스를 위한 헤더파일(.h)
2. 구현을 위한 소스파일(.c)

Ⅲ 인터페이스 구현
1. 하나의 인터페이스가 다양한 경로를 통해 여러 번 내포되더라도 컴파일러가 매번 다시 읽어들이지 않도록 하기 위해 이렇게 한다. name.h 라는 파일일 경우...

#ifndef _name_h
#define _name_h

내용

#endif
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/12/13 20:57 2004/12/13 20:57


  1. 아크몬드
    2004/12/13 21:22
    프로그래밍이군요..
    C 프로그래밍 시작하려고 하는데 어떤 책이 좋을까요?ㅎㅎ
  2. basecom
    2004/12/14 11:35
    저도 막 입문한 초보일뿐인데요;; 추천을 하자면 "C언어이야기" 라고 김중태란 분이 쓰신 책이 있는데 정말 쉽게 설명을 해놨지요. 입문서로썬 이게 최고라고 생각합니다.
Leave a Comment

파일

2004/12/13 07:03
Ⅰ 텍스트 파일와 이진 파일
1. 텍스트 파일(ASCII file)
① ASCII 문자들로만 구성되어진 파일.
② 연속된 모든 문자들이 일차원적으로 나열.( \n 등도 포함 )
③ EOF로 끝남

2. 이진 파일(binary file)
① 모든 데이터가 있는 그대로, 연속적으로 저장되어 있다.

Ⅱ C에서의 파일 제어 개념
1. C언어는 컴퓨터의 주변장치(키보드, 화면, 프린터 등)를 모두 하나의 파일로 취급한다.
2. 스트림(stream) :: C에서 입출력 동작을 수행할 때 사용하는 개념적인 데이터 이동 체계.
3. FILE* 타입의 변수를 선언해 사용 ( stdio.h 에 정의 )
① 실제 파일 처리를 관리하기 위해 시스템이 필요한 정보를 저장하는 사용됨
② 시스템마다 다양한 파일 시스템 구조의 차이를 극복할 수 있게 함
표준적인 조작 방법을 제공
4. C언어의 표준 스트림
① stdin :: 표준입력. 키보드
② stdout :: 표준출력. 화면
③ stderr :: 표준에러. 화면
④ stdprn :: 표준 프린터, 프린터
⑤ stdaux :: 표준 외부장치, 직렬포트

Ⅲ 파일 열고 닫기
1. fopen()
① filePointer = fopen( filename, mode );
② filename : 파일이름을 나타내는 문자열
③ mode : 데이터 전송 방식을 기술하는 문자열
ⓐ "r" :: read
- 읽기모드. 이미 존재하고 있는 파일이어야 한다.
ⓑ "w" :: write
- 쓰기모드. 존재하지 않으면 새로 생성. 존재하는 파일이면 overwrite
ⓒ "a" :: append
- 추가모드. 이미 존재하는 파일이면 덧붙여씀.

2. fclose()
① fclose( filePointer );
② open 한 파일은 반드시 close 하자!

Ⅳ 문자 입출력
1. getc()
① int getc( FILE *infile );
② 파일에서 한 문자를 읽어 그 값을 retrun.

2. putc()
① int putc( int ch, FILE *outfile );
② 지정한 파일에 한 문자(첫번째 인수)를 출력

Ⅴ 줄단위 입출력
1. fgets()
① char* fgets( char buffer[], int bufSize, FILE* infile );
② infile이 가르키는 파일의 내용을 읽어 buffer에 저장.
③ \n을 만나거나 bufSize만큼 읽을때까지.
④ 읽혀진 마지막 문자는 ‘\n’
⑤ buffer에 읽혀진 문자 다음에 ‘\0’ 삽입
⑥ 파일의 끝에서 호출되면 NULL을 리턴

2. fputs()
① void fputs( char* str, FILE* outfile);
② str이 가르키는 문자열의 내용을 outfile이 가르키는 파일에 write

Ⅵ 형식화된 입출력
1. printf()
① printf( control_string, … );
② 항상 표준출력(stdout)에 출력

2. fprintf()
① fprintf( output_stream, control_string, … );
② 첫번째 인수로 FILE* 를 취함. 그 파일에 출력

3. sprintf()
① sprintf( character_array, control_string,… );
② 첫번째 인수로 문자 배열(char *)을 취함. 그 배열에 출력

4. scanf()
① scanf( control_string, … );
② 항상 표준입력(stdin)에서 읽어들임

5. fscanf()
① fscanf( input_stream, control_string, … );
② 첫번째 인수로 FILE* 를 취함. 그 파일에서 읽어들임

6. sscanf()
① sscanf( character_array, control_string, … );
② 첫번째 인수로 문자 배열(char *)을 취함. 그 배열에서 읽어들임

7. scanf 계열 함수.
① 리턴값 :: 성공적으로 매칭되어 읽혀진 갯수
② 투명 문자(space, ‘\t’, ‘\n’)가 나타나면 scanf는 다음의 투명 문자가 아닌 문자 전까지 넘어간다
③ 숫자필드 크기(%기호뒤의..)는 필드에서 읽을 문자의 최대값을 나타냄

int: %d
float: %f(=%e =%g)
double: %lf
%c: 한 문자, 투명 문자도 읽어들임
%s: 첫 투명문자가 나오기 전까지의 문자열
%[ … ], %[^… ]
%[0123456789] : 숫자들을 문자열로 read
%[^.!?] :: ^뒤의 문자가 나오기전까지 read( ^뒤의 문자는 안읽는다.)
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/12/13 07:03 2004/12/13 07:03


Leave a Comment

[CSS] table-layout: fixed;

2004/11/07 13:42
이 스타일을 적용시키면 테이블이 고정된다.

지정한 픽셀에 따라, 퍼센테이지에 따라..

이렇게 고정해놓으면 미리 계산할 필요가 없어서 화면에 뿌려지는 속도도 빨라진다고 한다.

근데 이 태그엔 치명적인 약점이 있다. colspan이나 rowspan으로 셀을 합칠때, 각각의 셀에 대한 픽셀수를 따로 지정해봤자 그냥 동일한 크기로 나타난다는 것이다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/11/07 13:42 2004/11/07 13:42


  1. 키드
    2004/11/07 13:58
    colspan이나 rowspan으로 셀을 합칠때 동일한 크기로 나타난다는게
    정확히 어떤 의미인지 선뜻 이해되지는 않지만,
    table-layout:fixed를 쓴다고 해서 셀이 동일한 크기로 나타나지는 않는걸로 알고있는데요.

    실례가 안된다면 정확히 어떤 때 그런 문제가 생기는지 예제를 하나 부탁드려도 될까요?
    궁금하네요... 새로운걸 하나 배워갈지도 모르겠네요... ^^;;
  2. basecom
    2004/11/07 19:16
    저도 이것땜에 고생하다가 알게된건데요. 검색해보니 혹자는 버그라고도 하더군요;; 예를들면 이런 거죠.
    <table style="table-layout: fixed; border: solid 1 black" width="150"><tr><td style="border: 1 solid black" colspan="2">1</td></tr><tr><td style="border: 1 solid black" width="50">2</td><td style="border: 1 black solide" width="150">3</td></tr></table>

    이런 소스가 있다면 테이블의 전체 너비는 150픽셀로 고정되고, 첫번째줄은 그냥 한 칸이지만 두번째줄은 두 칸이죠. 여기서 두번째줄의 첫칸엔 50, 두번째칸엔 100을 줘서 저런식으로 나눠질 것을 기대하지만 실제론 75,75 로 나눠진다는 겁니다.

    혹시 해결법 알고 계시면 알려주세요. 전 그냥 테이블 속에 테이블 만들었습니다;;
  3. 키드
    2004/11/08 03:46
    아~ 그렇군요.
    적어주신 소스는 말씀처럼 50, 150으로 넓이가 지정되어 있음에도 75씩 나타나는군요.
    처음 알았습니다. 저렇게 써본일이 없어서리... ^^;;

    저 문제는 td에 넓이값을 주었기 때문에 발생한 겁니다.
    table-layout:fixed는 col과 같이 사용해야 합니다.

    <table style="table-layout: fixed; border: solid 1 black" width="150"><col width="50"><col width="150"><tr><td style="border: 1 solid black" colspan="2">1</td>
    </tr><tr><td style="border: 1 solid black">2</td><td style="border: 1 black solid">3</td></tr></table>

    이렇게 하면 정상적으로 출력됩니다. 참고로 예전에 써논 글 트랙백 겁니다.
  4. basecom
    2004/11/09 01:30
    아.. 그렇게 하면 되는거였군요~ 감사합니다^^ 여러가지 배웁니다. 이래서 블로그가 좋습니다.
Leave a Comment

[CSS] 마우스 오버.

2004/10/31 21:26
onMouseOver="this.className='class_over'"

onMouseOut="this.className='class_out'"
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/10/31 21:26 2004/10/31 21:26


Leave a Comment
1. 배경이미지 넣기
* background-image: url(image.jpg);


2. 반복 style :: background-repeat: ;
* no-repeat :: 반복하지 않음.
* repeat :: 반복. (기본값)
* repeat-x : x 방향으로만 반복.
* repeat-y : y 방향으로만 반복.


3. 위치 :: background-position: ;
* left, top, right, bottom
* 100px, 200px
* 10%, 20%


4. 배경 고정 :: background-attachment: fixed;
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/10/31 21:23 2004/10/31 21:23


  1. 깐깐김기
    2009/12/17 06:37
    이게 그 홈페이지 스킨만들때 쓰는 용어?단어?인가요?
Leave a Comment

[CSS] 링크에 관한 style

2004/10/31 21:15
1. 기본 구조.

* A:link 는 평범한 링크.
* A:visited 는 방문한적이 있는 링크.
* A:hover 는 마우스를 올린 링크.
* A:active 는 현재 방문중인 링크.
{ color: ; font-size: ; text-decoration: ; ... }


2. text-decoration: ;

* none :: 줄 없음.
* underline :: 아랫줄.
* overline :: 윗줄.
* underline overline :: 위아래 두 줄.


3. etc..
* background: color; padding:2 2 0; :: 박스가 생긴다.
* background:url(dotline.gif) repeat-x bottom :: 이미지를 이용, 밑줄 만들기..
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/10/31 21:15 2004/10/31 21:15


Leave a Comment
1. scrollbar-face: color;
:: 위쪽,아래쪽 화살표 있는 부분과 가운데 이동하는 부분.


2. scrollbar-arrow: color;
:: 화살표 부분.


3. scrollbar-track: color;
:: 스클로바가 이동하는 길.


4. scrollbar-highlight: color;
:: face의 좌측과 상단.


5. scrollbar-3dlight: color;
:: face의 좌측과 상단의 바깥쪽.


6. scrollbar-shadow: color;
:: face의 우측과 하단.

7. scrollbar-darkshadow: color;
:: face의 우측과 하단의 바깥쪽.
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/10/31 20:17 2004/10/31 20:17


Leave a Comment
1. 테두리선 style :: border-style: ;
none

dotted

dashed

solid

double

groove

ridge

inset

outset

* border-style 로 정한 테두리선의 두께는 border-width로 정해준다.


2. 테두리선 색 :: border-color: RGB color or color name;


3. 테두리선 두께 :: border-width: px;


4. 테이블엔 4개의 테두리 선이 있고, 따로 지정이 가능하다.
* border-left-
* border-right-
* border-top-
* border-bottom-


5. 바깥쪽 여백 :: margin: px;
* margin-left: px;
* margin-right: px;
* margin-top: px;
* margin-bottom: px;


6. 안쪽 여백 :: padding: px;
* padding-left: px;
* padding-right: px;
* padding-top: px;
* padding-bottom: px;
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/10/31 18:18 2004/10/31 18:18


Leave a Comment

[CSS] 글자에 관한 style

2004/10/31 17:57
1. 크기 :: font-size: pt;
1pt
2pt
3pt
4pt
5pt
6pt
7pt
8pt
9pt
10pt
11pt
12pt
13pt
14pt
15pt


2. 색 :: color: RGB code or color name;

3. 글꼴 :: font-family: font name1, font name2, ...;
* 여러개를 지정하면 앞글꼴이 없을 경우 뒷글꼴을 적용한다.


4. 스타일 :: font-style: ;
normal(기본값)
italic
oblique


5. 굵기 :: font-weight: ;
normal(기본값)
bold


6. 행간 :: line-height: px;


7. font-variant: ;
normal
small-caps
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/10/31 17:57 2004/10/31 17:57


Leave a Comment
1. 기본 구조.
[CODE] <table> <tr> <td> 여기에 내용을 입력한다. </td> </tr> </table> * <table>..</table>은 표의 시작과 끝을 알리고, * <tr>..</tr>은 한 줄의 시작과 끝을 알린며, * <td>..</td>은 한 칸의 시작과 끝을 알린다. [/CODE]


2. table, tr, td의 공통 속성.

① width = px :: 넓이
② height = px :: 높이
③ bgcolor = RGB code or color name :: 바탕색
④ background = 주소 :: 배경이미지
⑤ align = left, center, right :: 수평정렬
⑥ valign = top, middle, bottom :: 수직정렬


3. table만의 속성.

① border = px :: 테이블 경계선 두께
② bordercolor = RGB code or color name :: 테이블 경계선 색.
③ bordercolorlight = RGB code or color name :: 테이블 경계선 색의 밝은 부분.
④ bordercolordark = RGB code or color name :: 테이블 경계선 색의 어두운 부분.
* bordercolorlight, bordercolordark 두 속성 적용시 bordercolor는 무시당한다.
⑤ cellpadding = px :: 셀 내부에서의 내용물이 경계선으로부터 떨어져야 할 여백.
⑥ cellspacing = px :: 각 셀들간에 떨어져야 할 여백.


4. td만의 속성.

① colspan = 합칠 칸의 개수 :: 옆으로 합치기 ( 옆의 열과 .. )
② rowspan = 합칠 칸의 개수 :: 아래로 합치기 ( 아래의 행과.. )
크리에이티브 커먼즈 라이센스
Creative Commons License
2004/10/31 17:33 2004/10/31 17:33


  1. basecom
    2004/10/31 19:04
    그렇군요~ 알려주셔서 감사합니다
Leave a Comment
블로그이미지
About
basecom

Recent Trackback




287532
Today : 120   Yesterday : 273