매크로 (Macros) ¶
| 매크로 명 | 설명 |
| NULL | 널 포인터 상수 값 |
| EXIT_FAILURE | 실패한 종료 (0이 아닌 값을 가짐) |
| EXIT_SUCCESS | 성공한 종료 (0인 값을 가짐) |
| RAND_MAX | 랜덤 함수에 의해서 리턴되는 최대 값 (적어도 32, 767) |
| MB_CUR_MAX | 현재 사용 중인 로케일에서 멀티바이트 문자의 최대 길이 |
변수 (Variables) ¶
| 변수 명 | 설명 |
| typedef size_t | sizeof 키워드의 unsigned 정수형 결과 |
| typedef wchar_t | 확장 문자 상수 크기의 정수 타입 |
| struct div_t | div() 함수에 의해 리턴되는 구조체형 |
| struct ldiv_t | idiv() 함수에 의해 리턴되는 구조체형 |
함수 (Functions) - String Functions ¶
| 함수 명 | 설명 |
| double atof(const char *str); | 문자열을 실수(double precision)로 변환 |
| int atoi(const char *str); | 문자열을 정수(integer)로 변환 |
| double strtod(const char *str, char **endptr); | 문자열을 실수(double precision)로 변환 |
| long int strtol(const char *str, char **endptr, int base); | 문자열을 정수(long integer)로 변환 |
| unsigned long int strtoul(const char *str, char **endptr, int base); | 문자열을 정수(unsigned long)로 변환 |
함수 (Functions) - Memory Functions ¶
| 함수 명 | 설명 |
| void *calloc(size_t nitems, size_t size); | 요청된 메모리 할당 (모든 원소를 0으로 초기화 한다) |
| void free(void *ptr); | calloc(), malloc(), realloc()에 의해 할당된 메모리 해제 |
| void *malloc(size_t size); | 요청된 메모리 할당 (원소를 초기화 하지 않는다) |
| void *realloc(void *ptr, size_t size); | calloc(), malloc()에 의해 할당된 메모리 크기를 재조정한다 |
== 함수 (Functions) - Environment Functions ==
| 함수 명 | 설명 |
| void abort(void); | 비정상적인 프로그램 종료를 발생시킨다 |
| int atexit(void (*func)(void)); | 프로그램이 정상적으로 종료될 때 전달인자로 넘겨진 함수포인터를 이용해서 특정 함수 실행 |
| void exit(int status); | 정상적인 프로그램 종료를 발생시킨다 |
| char *getenv(const char *name); | 환경 변수를 얻는다 |
| int system(const char *string); | 전달인자로 받은 명령 실행 |
함수 (Functions) - Searching and Sorting Functions ¶
| 함수 명 | 설명 |
| void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)); | 이진검색 수행 |
| void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)); | 퀵 소트 수행 |
함수 (Functions) - Math Functions ¶
| 함수 명 | 설명 |
| int abs(int x); | 정수형 절대값 리턴 |
| div_t div(int numer, int denom); | 전달인자의 numer를 denom으로 나눈 값과 나머지를 구조체형식으로 리턴 |
| long int labs(long int x); | long형 정수의 절대값을 리턴 |
| ldiv_t ldiv(long int numer, long int denom); | div()와 동일하고 변수 타입만 long int |
| int rand(void); | 0부터 RAND_MAX까지의 범위사이의 난수 리턴 |
| void srand(unsigned int seed); | rand()에 의해 사용되는 난수 생성기에 인자 공급 |
함수 (Functions) - Multibyte Functions ¶
| 함수 명 | 설명 |
| int mblen(const char *str, size_t n); | 다중 바이트 문자의 길이 리턴 |
| size_t mbstowcs(schar_t *pwcs, const char *str, size_t n); | 다중 바이트 문자 스트링을 wide 문자 스트링으로 변환 |
| int mbtowc(whcar_t *pwc, const char *str, size_t n); | 다중 바이트 문자를 wide 문자로 변환 |
| size_t wcstombs(char *str, const wchar_t *pwcs, size_t n); | wide 문자 스트링을 다중 바이트 스트링으로 변환 |
| int wctomb(char *str, wchar_t wchar); | wide 문자를 다중 바이트 문자로 변환 |
strtod(), strtol(), strtoul() 예제코드 ¶
~cpp
#include <stdlib.h>
#include <stdio.h>
void main( void )
{
char *string, *stopstring;
double x;
long l;
int base;
unsigned long ul;
string = "3.1415926This stopped it";
x = strtod( string, &stopstring );
printf( "string = %s\n", string );
printf(" strtod = %f\n", x );
printf(" Stopped scan at: %s\n\n", stopstring );
string = "-10110134932This stopped it";
l = strtol( string, &stopstring, 10 );
printf( "string = %s", string );
printf(" strtol = %ld", l );
printf(" Stopped scan at: %s", stopstring );
string = "10110134932";
printf( "string = %s\n", string );
/* Convert string using base 2, 4, and 8: */
for( base = 2; base <= 8; base *= 2 )
{
/* Convert the string: */
ul = strtoul( string, &stopstring, base );
printf( " strtol = %ld (base %d)\n", ul, base );
printf( " Stopped scan at: %s\n", stopstring );
}
}
strtod(), strtol(), strtoul() 실행 결과 ¶
string = 3.1415926This stopped it
string = -10110134932This stopped it strtol = -2147483647 Stopped scan at: This stopped itstring = 10110134932
strtod = 3.141593
Stopped scan at: This stopped it
Stopped scan at: This stopped it
strtol = 45 (base 2)
Stopped scan at: 34932
strtol = 4423 (base 4)
Stopped scan at: 4932
strtol = 2134108 (base 8)
Stopped scan at: 932
Stopped scan at: 34932
strtol = 4423 (base 4)
Stopped scan at: 4932
strtol = 2134108 (base 8)
Stopped scan at: 932
malloc() 예제코드 ¶
~cpp
#include <stdlib.h> /* For _MAX_PATH definition */
#include <stdio.h>
#include <malloc.h>
int main( void )
{
char *string;
/* Allocate space for a path name */
string = malloc( _MAX_PATH );
// In a C++ file, explicitly cast malloc's return. For example,
// string = (char *)malloc( _MAX_PATH );
if( string == NULL )
printf( "Insufficient memory available\n" );
else
{
printf( "Memory space allocated for path name\n" );
free( string );
printf( "Memory freed\n" );
}
}
qsort(), bsearch() 예제코드 ¶
~cpp
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main(void)
{
int i;
char string_array[10][50]={"John", "Jane", "Mary", "Rogery", "Dave",
"Paul", "Beavis", "Astro", "George", "Elroy"};
/* 정렬 전 */
for (i = 0; i < 10; i++)
printf("%s, ", string_array[i]);
printf("\n");
/* Sort the list */
qsort(string_array, 10, 50, strcmp);
/* 정렬 후 */
for (i = 0; i < 10; i++)
printf("%s, ", string_array[i]);
printf("\n");
/* Search for the item "Elroy" and print it */
printf("%s\n",bsearch("Elroy", string_array, 10, 50, strcmp));
return 0;
}
qsort(), bsearch() 실행 결과 ¶
John, Jane, Mary, Rogery, Dave, Paul, Beavis, Astro, George, Elroy,
Astro, Beavis, Dave, Elroy, George, Jane, John, Mary, Paul, Rogery,
Elroy
----
OurMajorLangIsCAndCPlusPlus
Astro, Beavis, Dave, Elroy, George, Jane, John, Mary, Paul, Rogery,
Elroy
OurMajorLangIsCAndCPlusPlus










