c언어 8

TIME

time.h 을 Include time_t time( time_t *timer );char *ctime( const time_t *timer ); #include void main(){ time_t t; time(&t); printf("현재 시간은 %s입니다.\n",ctime(&t));;} 현재 시간은 Sun Sep 05 03:35:27 2004입니다. #include void main(){ char Date[10]; char Time[10]; _strdate(Date); _strtime(Time); printf("날짜 : %s, 시간 : %s\n",Date,Time);} 날짜 : 09/06/04, 시간 : 16:35:42" 이렇다 시간 구조체 struct tm *gmtime(const time_t *t..

카테고리 없음 2017.03.20

난수 발생

어떤 임의의 수를 a로 나눈 나머지는 항상 a보다 작다. 나머지 연산자를 적절한 위치에 제대로 사용한 예라고 할 수 있다. srand 함수를 사용하면 난수 발생기를 초기화할 수 있고 rand 함수와 나머지 연산자를 사용하면 원하는 범위의 난수를 만들 수 있다. 그러나 이 함수들은 쓰기에 불편하기 때문에 직접 사용하지 않으며 다음과 같이 정의되어 있는 매크로 함수를 대신 사용한다. #define randomize() srand((unsigned)time(NULL))#define random(n) (rand() % (n)) random(10) // 0~9 까지의 난수random(89) // 0~88 까지의 난수 random(10)+1 // 1~10까지의 난수random(20)+10 // 10~29 까지의 난..

카테고리 없음 2017.03.20

반올림 메크로

x를 10배한 후 반올림하고 다시 10으로 나누면 소수점 둘 째자리에서 반올림된다. x가 3.14라고 했을 때 31.4로 만든 후 0.5를 더해 31.9로 만들고 이 값에 대해 floor 함수를 호출하면 31이 된다. 결과값을 다시 10으로 나누면 3.1이 될 것이다. 원래 x값에 10을 곱해 소수점을 잠시 왼쪽으로 한칸 옮긴 후 반올림 처리하고 다시 오른쪽으로 한칸 옮기는 것이다.같은 원리로 소수점 셋 째자리에서 반올림하려면 floor(x*100+0.5)/100 공식을 사용하면 되고 소수점 넷 째자리에서 반올림하려면 floor(x*1000+0.5)/1000 공식을 쓴다. 곱하고 나누는 수만 조정하면 반올림되는 자리수를 원하는대로 지정할 수 있고 더하는 0.5를 조정하면 반올림 경계도 입맞대로 설정할 수..

카테고리 없음 2017.03.17

전역변수와 지역변수

전역변수와 지역변수 기억 부류전역지역정적레지스터지정자externautostaticregister저장 장소정적 데이터 영역스택정적 데이터 영역CPU의 레지스터선언 위치함수의 외부함수의 내부함수의 내부함수의 내부통용 범위프로그램 전체함수의 내부함수의 내부함수의 내부파괴 시기프로그램 종료시함수 종료시프로그램 종료시함수 종료시초기값0으로 초기화초기화되지 않음0으로 초기화초기화되지 않음 예제 #include void func(); int global; // 함수 외부에서 선언되었으므로 전역변수 void main(){ int local; // main 함수의 지역변수 global=1; // 가능 local=2; // 가능 i=3; // 불가능} void func(){ int i; // func 함수의 지역변수 gl..

카테고리 없음 2017.03.10

C - 프로그램 구조

C - 프로그램 구조 #include #define lpText "매크로의 주의 사항 테스트를 위한 메시지 박스입니다." void main(){ MessageBox(NULL,lpText,"제목",MB_OK);} 이 구조에서 Include와 Define이 변경된다면 오류가 발생이유는 Turboc.h에 MessageBox에 대한 정의가 되어 있는데, 메크로로 설정되어 있는 lpText 가 적용되어, 컴파일러가 정확한 동작을 할 수 없다. 이런 경우 외에, 컴파일 옵션이나 환경을 정의하는 경우에는 Include보다 먼저 Define을 쓰는 경우도 있다. 그리고 표준 헤더파일을 먼저 호출하고 다음 사용자 정의 헤더파일을 포함

카테고리 없음 2017.03.09

매크로 함수

주의사항 1. 매크로 함수는 전체식에 괄호를 사용해야 한다. ex) #define a(i) (i+i) 2. 매크로의 인수들도 개별적으로 괄호로 싸 준다. ex) #define a(i) ((i) * (i)) 3. 매크로 함수는 인수의 타입 같은 것은 점검하지 않는다. ex) #define a(p) (*p++) 4. 매크로 함수에 여러 개의 명령을 동시에 포함시킬 수 있다. - 명령이 여러개가 있을 경우에는 { } 를 활용하여 표시한다. ex) #define Print(x,y,str) { gotoxy(x,y); Puts(str); } - 여러 줄로 표시하고 싶을 때는 \를 넣는다. ex) #define Print(x,y,str) \ { clrscr(); \ gotoxy(x,y); \ puts(str); } ..

카테고리 없음 2017.02.13