typedef 를 사용하는 이유 자주 사용하는 형(type)을 편리하고 쉽게 사용하기 위하여 별칭을 부여한다. 복잡한 형태을 간단히 표현하여 사용할수 있어서 좋다. 일반적인 사용법 #include<stdio.h> typedef char inch; int main() { inch ch='A'; printf("문자을 출력합니다. : %c\n",ch); } 구조체에서 사용법 struct A{ ... }sa; 위와 같을때 typedef struc…
외부 변수 ( extern ) 외부변수는 함수의 밖에서 정의한다. 외부변수는 하나의 소스 화일을 넘어서 여러개의 프로그램 단위로부터도 참조가 가능하다 외부변수 정의 int z; 또는 extern int z; 와 같이 정의한다. name1.c int i=10; name2.c int z=20; name3.c #include<stdio.h> extern int i; extern int z; main() { printf(" %d %d&…
조건부 컴파일 지시자는 지정한 조건의 진위 여부에 따라 코드의 일정 부분을 컴파일할 것인지 아닌지를 지정한다. #if -> 조건이 참인 경우 컴파일 한다. #endif -> 해당 if 블록의 끝을 알린다. (반드시 적어야된다.) #else -> 위의 if 절이 거짓인 경우 컴파일 한다. #elif -> 위의 if 절이 거짓이고 해당 elif 다음 조건이 참인 경우 컴파일한다. #ifdef -> 뒤쪽 상수가 정의 되어져 있으면 컴파일한다.…
한개의 함수포인터로 두가지 이상일을 하고자 할때 사용한다. 함수 포인터는 각각의 함수를 호출하는것이 아니라 함수의 주소를 포인터로 가르켜 호출하는 방식이다. 리턴형 (*함수포인터명)([인수, ...]); #include<stdio.h> int getadd(int a, int b); // 더하기 int getsub(int a, int b); // 빼기 main() { int (*pas)(int,int); pas = getadd; p…
#define : 기호화된 상수 #define 의 장점은 속도가 빠르다 또한 자료형에 독립적이다. 단점은 구현이 어렵다 길이가 길어질수록 느려진다. define 는 선행처리기에서 처리한다 그러므로 컴파일이 에러가 생겨도 알수가 없다. #define 의로 상수화 .. #include<stdio.h> #define ONE 1 //<-------------- 상수화 main() { printf("정수 : %d \n ",ONE); }; #define ONE 1 …
난수 ( rand,srand ) 헤더파일에 #include<stdlib.h> 포함 하고 있어야 된다. 실행할때마다 값이 다르게 나오게 한다. #include<stdio.h> #include<stdlib.h> // srand() 와 rand() 를 위하여 .. #include<time.h> // time() 을 위하여 .. main() { int i,Xrand; srand(time(NULL)); // 시간으로 초기화 .. for(…
C 에서 메모리 활당 방법 일반변수에 메모리을 추가하여 힙영역에 메모리 활당하여 보자. #include<malloc.h> 헤더함수가 포함하고 있어야 한다. int * a = (int *)malloc(sizeof(int)); // 배열사용시 size 부분에 scanf 로 이용해서 값을 넣는다. 변수 a 에 캐스트 연산자(int *)를 하고 malloc 에서 int 을 sizeof() 에서 크기을 계산하고 있다 그다음에 int * 가 주소값을 반환한다..그리고 그다음에 a 에 대입한다. 메모리을 사용하였으면 다쓰고 난뒤에…
열거형 enum은 "enumerated type"(열거형)의 준말입니다 정해진 규칙은 아니지만 멤버를 대문자로 적어주는것이 가독성이 좋다 #include<stdio.h> enum {A,B,C,D,E,F,G}; main(){ printf("%d %d %d %d %d\n",A,B,C,D,E); } 프린터문으로 화면에 출력하였을경우 순서에 의하여 0,1,2,3,4.. 식의 정수가 출력된다. #include<stdio.h> enum {A,B…
시간이란것을 모르시는분들 없으시겠죠? 자 그럼 컴퓨터의 시간함수에 대해서 알아보아요. 우선 시간을 나타내려면 헤더파일을 포함해야된다. #include <time.h> 아주 중요하죠 없으면 아무것도 못하죠 ^^;; 그다음에 현재 시간을 구하는 time 사용하여 시간을 나타내보자 time_t time(time_t *t); time 함수는 1970 년 1 월 1일 00시 00분을 기준으로 현재까지의 시간을 초로 나타내어준다. #include<stdio.h> #include<time.h> …
렌덤 액세스 ( random access ) 파일안에서 파일포인터(FP)의 위치을 이동시킨다. int fseek(FILE * stream, long offset, int mode) "mode" 에서 숫자를 적어도 상관없다. SEEK_SET 0 파일 맨앞으로 이동한다. SEEK_CUR 1 이동하지 않는다 SEEK_END 2 파일의 끝으로 이동한다. #include <stdio.h> main() { FILE *fp; char ch; …