모두의 코드
모두의 코드

총 42 개의 강의로 준비된 씹어먹는 C 언어 강좌를 통해 C 언어의 처음부터 끝까지 배우실 수 있습니다! 특히 악명 높은 C 언어의 포인터나, 어려운 개념들을 충실히 짚고 넘어갑니다.

이 강좌는 2010년에 완결되었지만, 지속적으로 개선 및 보완하고 있습니다.

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정도 아는 독자를 가정하여 쓰여져 있습니다.

이 강좌는 2020년에 완결되었고 총 50 개의 강좌가 준비되어 있습니다.

사이트 내에서 검색 하기
C 언어 레퍼런스
표준 입출력 라이브러리 stdio.h
문자열 관련 라이브러리 string.h
시간 관련 라이브러리 time.h
C ++ 레퍼런스
문자열 라이브러리 string
알고리즘 라이브러리 algorithm
최근 댓글
이 질문 관련해서 추가 질문이 있습니다. 1: 저는 static이 stack이 아닌 위의 stackoverflow에서 처럼 힙영역에 가까운 BSS 쪽에 할당되는 줄 알았습니다.그런데 간단한 코드를 짜보니 함수(func)의 주소(stack)에 할당되더군요 물론 컴파일러가 마음대로 할당을 한 것일 수도 있습니다만 왜 이런 일이 일어나는지. 2 : 그리고 static const는 정적 + 상수인 만큼 아마 실행 전에 변수만큼의 영역을 static 영역에 이미 할당해 놓을 것으로 예상됩니다.윗분의 말씀처럼 Factorial<100>을 실행했을 때 컴파일러가 template의 원리처럼 Fac<100>::rst * Fac<99>::rst * --Fac<1>::rst로 바꾸어 실행될 것이라고 생각합니다.그럼 각 Factorial 객체가 생성될 시 result 변수도 static 영역에 자리를 차지할 것이라고 예상됩니다. 그런데 여기서 결국에 우리가 필요한 것은 Factorial<100>의 result 하나만이 필요한 것인데 그 과정에서 생성되었던 Factorial<99>부터 Factorial<1>까지의 result들이 메모리에 남아있다면 result의 변수 형식에 따라서 100 * 8byte에 가까운 메모리가 낭비되는 것은 아닌지요 ?(static const 임으로 프로그램 종료시까지 남아있을것으로 생각됩니다 ) 3 : 마지막으로 이러한 일련의 과정들이 결국에는 template을 사용함으로써 얻을 수 있는 속도에는 분명 이득이 있을 것입니다(미리 메모리 영역을 할당하고 값이 들어있음으로 함수로 하나하나 변수를 복사 생성 하는 것 보다는 빠를 것) 하지만 2번째 질문처럼 메모리의 낭비가 이루어진다면 이것을 template의 사용으로 인한 메모리와 속도의 등가교환으로 보아야 할까요 ?
gang 04.11