42

    [C] 정적변수란? - 지역변수, 전역변수 비교

    A good start would be to know what a static variable is. C언어에서 사용되는 "정적변수(static variable)" 개념에 대해 알아보자. // static 자료형 변수명; static char*save; 위와 같은 형태로 자료형 앞에 static을 붙여 사용하는 정적변수는 다음과 같은 사전적 정의를 가진다. 정적 변수(靜的變數, static variable)는 정적으로 할당되는 변수이며, 프로그램 실행 전반에 걸쳐 변수의 수명이 유지된다. 즉, 프로그램이 종료되기 전까지 변수가 메모리에 남아있는다는 뜻인데 조금 더 자세하게 이해하기 위해 메모리 구조를 살펴보았다. 지금까지의 과제를 진행할 때 가장 자주 사용했던 지역변수는 메모리 구조에서 Stack 영역에..

    [C] printf() 구현하기 - 가변 인수 함수란?

    printf() 함수 구현 중에 마주친 가변 인수의 개념. 대충 "바뀔 수 있는 인수"라는 뜻인 것 같은데 언제 어디에서 사용되는 개념인지 알아보자. 가변 인수 (Variable Argument) 가변 인수는 미리 정해져 있지 않은 인수를 의미한다. 즉, 인수의 개수와 자료형이 따로 정해져 있지 않은 인수라는 뜻이다. 가변 인수 함수란 이러한 가변 인수를 다루는 함수이다. 이렇게 풀어쓰니 잘 와닿지 않는 것 같지만 사실 나는 이미 가변 인수 함수를 사용하고 있었다. 바로 printf() 함수가 가변 인수를 가지는 함수의 대표적인 예시이다. 먼저 아래는 오리지널 printf() 함수의 프로토타입이다. intprintf(const char *format, ...); 내가 구현해야 하는 ft_printf() ..

    [C] printf() 함수란?

    ft_printf()를 구현하기 전에 C언어의 표준 입출력 함수 printf() 함수를 알아보자. C를 배우고 난 뒤로 가장 많이 사용한 함수일텐데 함수의 서식이나 원리를 따로 공부하지는 않았다. 막연하게 출력하는 함수라고만 알고 있었기 때문에 누군가 "printf() 함수가 뭔데?" 라고 물어보면 한마디로 설명할 수가 없어서 리눅스에 printf()에 대해서 물어봤다. man printf 정리하자면 printf()는 여러 데이터를 다양한 형식에 맞추어 출력하는 함수이다. 매뉴얼의 시놉시스를 보면 함수를 아래와 같이 표현한다. printf format [arguments ... ] 위의 format 부분에는 단순 문자열(plain characters), 이스케이프 시퀀스(character escape s..