본문 바로가기
반응형

코스웨어/16년 스마트컨트롤러370

2016-09-02_조재찬_스터디일지_C언어-리스트에 구조체 변수 저장 리스트에 구조체 변수 저장하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #ifndef __POINT_H__ #define __POINT_H__ typedef struct _point { int xpos; int ypos; } Point; // Point 변수의 xpos, ypos 값 저장 void SetPointPos(Point * ppos, int xpos, int ypos); // Point 변수의 xpos, ypos 정보 출력 void ShowPointPos(Point * ppos); // 두 Point 변수의 비교 int PointComp(Point * pos1, Point * pos2); #endif Point.c (PointComp 함수의 반환값은 .. 2016. 9. 2.
2016-08-31_조재찬_스터디일지_C언어-순차(배열기반) 리스트 리스트 자료구조는 크게 두가지로 나뉨 순차 리스트 : 배열을 기반으로 구현된 리스트연결 리스트 : 메모리 동적할당을 기반으로 구현된 리스트 리스트 자료 구조의 특성: 데이터를 나란히 저장하며, 중복된 데이터의 저장을 막지 않는다. 아래 예제 파일을 열어 ArrayList.c는 가급적 열지 않고 직접 구현해보도록 * 자료 구조의 내부 구현을 모르고도 해당 자료구조의 활용이가능하도록 ADT를 정의하는 것이 맞다. 리스트의 데이터 참조 과정 순서대로 참조하려면 먼저 LFirst를 호출해 첫번째 데이터를 얻는다.두 번째 이후의 데이터는 LNext를 호출해서 얻는다. LFirst 함수와 LNext 함수는 더 이상 참조할 데이터가 없으면 FALSE를 반환한다. 리스트내에서 '데이터 참조위치'를 기록하기 때문에,참조.. 2016. 9. 1.
2016-08-31_조재찬_스터디일지_C언어-파일의 분할과 헤더파일의 디자인 파일의 분할과 헤더파일 디자인 외부에 선언 및 정의되었다고 알려주는 extern extern 선언을 생략해도 되지만, 다른 파일에 선언 및 정의되었음을 알리기위해 extern을 쓴다. 둘 이상의 파일을 컴파일하는 방법 (프로젝트에 여러 파일을 추가해 컴파일) 기존에 존재하는 파일은 Existing Item... 새로 만드려면 New Item... 전역변수의 static 선언 static int num=0;// 외부 소스파일에서 접근 불가능한 전역변수 void SimpleFunc(void) { .... } 함수의 static 선언 static void MinCnt(void) { cnt--; } 외부 소스파일에서의 접근(호출)을 허용하지않기 위한 선언 즉 접근범위를 파일 내부로 제한한다. 헤더파일의 디자인과.. 2016. 8. 31.
2016-08-30_조재찬_스터디일지_C언어-선행처리기와 매크로 (2) 조건부 컴파일(Conditional Compilation)을 위한 매크로 #if... #endif : 참이라면 조건부 코드 삽입을 위한 지시자 참이면 #if~#endif 까지 컴파일 대상에 포함 거짓이면 선행처리기가 #if~#endif 까지의 코드를 지움 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #define ADD 1 // 0이 아닌 값은 참 #define MIN 0 // 0은 거짓 int main(void) { int num1 = 20; int num2 = 10; #if ADD // ADD가 '참'이라면 printf("%d + %d = %d \n", num1, num2, num1+num2); #endif #if MIN // MIN이 '참'이.. 2016. 8. 30.
2016-08-29_조재찬_스터디일지_C언어-선행처리기와 매크로 선행처리기(Preprocessor) 선행처리 거친 소스파일은 프로그래머가 인지할 수 있는 형태이다. 선행처리기의 일 - 단순 치환 소스1 2 3 4 5 6 #definePI3.14// 선행처리기에게 명령하는 문장은 #으로 시작하며 한줄마다 처리된다. (끝에 semi colon붙이지 않음) int main() { num = PI * 3.5; } 선행처리 후 소스 #definePI3.14 //지워짐 1 2 3 4 int main(void) { num = 3.14 * 3.5; } Object-like macro #definePI3.14 directive / macro / macro's body PI를 상수 3.14로 정의 1 2 3 4 5 6 7 8 9 10 11 12 13 #include #define NA.. 2016. 8. 30.
2016-08-28_조재찬_스터디일지_C언어-파일위치 지시자 / 메모리 관리와 동적할당 파일 위치 지시자 FILE 구조체의 멤버 중 하나 Read/Write에 대한 위치 정보를 갖고 있다. (어디까지 읽었는지 또는 어디부터 이어서 쓸건지) 파일 입출력 함수가 호출될때 파일 위치 지시자의 참조 위치가 달라짐 파일 위치 지시자의 이동 fseek #include int fseek(FILE * stream, long offset, int wherefrom); // 성공시 0, 실패시 0이 아닌 값 반환 어디서부터(wherefrom) 몇칸 오른쪽(+) 또는 왼쪽(-)으로 이동할건지에 대한 인자(offset)를 전달받음 SEEK_SET - 파일 맨앞에서부터 이동시작 SEEK_CUR - current : 현재 위치에서부터 이동시작 SEEK_END - 파일 맨끝에서부터 이동시작 주의 할점은 END는 EO.. 2016. 8. 29.
2016-08-25_조재찬_스터디일지_C언어-파일 입출력 입력 스트림과 출력 스트림의 형성을 요청하는 fopen 함수 #include FILE * fopen(const char * filename, const char * mode); fopen함수를 통해 FILE 구조체 변수가 생성, 파일과의 스트림 형성 FILE 구조체 변수에 파일 정보가 담김 (파일 데이터가 담기는 것이 아님) FILE * fp = fopen("data.txt", "wt"); // wt(write in text mode)모드로 파일 data.txt와 출력스트림을 형성FILE * fp = fopen("C:\\Project\\data.txt", "wt"); // 경로 지정시 \ 자체를 표현하려면 \\ 두개 써야함 FILE * fp = fopen("data.txt", "rt"); // rt모드는.. 2016. 8. 25.
2016-08-24_조재찬_스터디일지_C언어-구조체 /*중첩된 구조체의 정의Point 구조체(x, y pos), Circle 구조체(Point cen, double rad)center, radius를 보여주는 함수를 정의하고 메인함수에서 출력*/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include typedef struct { int xpos; int ypos; }Point; typedef struct { Point cen; double rad; }Circle; Circle GetCircleInfo(void) { Circle cir; printf("원의 중심 입력: "); scanf("%d %d", &cir.cen.xpos, &cir.cen... 2016. 8. 25.
2016-08-22_조재찬_스터디일지_C언어-문자와 문자열 관련 함수 하나의 문자를 출력하는 함수 int putchar(int c);int fputc(int c, FILE * stream); // *stdout은 모니터 출력, putchar함수와 동일한 결과 하나의 문자를 입력받는 함수 int getchar(void);int fgetc(FILE * stream); // *stdin은 키보드로 문자 입력받음 파일의 끝에 도달하거나 함수호출 실패 시 EOF(End Of File) 반환EOF는 파일의 끝을 알리기 위한 상수 -1 로 정의된다. /* 문자열 관련 입출력 함수*/ 1 2 3 4 5 6 7 8 9 10 11 12 #include int main() { int ch1 = getchar(); // 문자 입력 int ch2 = fgetc(stdin); // 엔터 키 입력 .. 2016. 8. 23.
728x90
반응형