본문 바로가기

프로그래밍 언어/C언어3

가변 인자에 대하여 가변인자란 인자의 갯수가 정해지지 않은 인자를 의미한다. 가변 인자를 갖는 함수 프로토타입을 선언할 때는 최소 1개 이상의 고정 인수가 있어야 하고, 가변 인자를 나타내는 '...'은 파라미터 순서상 맨 마지막에 위치해야 한다. int sum(int count, ...) { int res = 0; va_list ap; int i; va_start(ap, count); for(i=0; i 이 부분은 ap 안의 주소값을 t만큼 증가시켜서 ap가 다음 가변인자를 가리키도록 하는 게 목적 ap += _INTSIZEOF(t) - _INTSIZEOF(t) -> 이 부분은 현재 ap가 가리키는 가변 인자를 리턴하는 게 목적 4. va_end #define va_end(ap) ( ap = (va_list)0 ) 위와 .. 2023. 7. 4.
유효 숫자 float형은 유효 숫자를 7개까지 double형은 유효 숫자를 15개까지 보장해 준다고 하는데그런데 유효 숫자는 정확히 무엇을 의미하는 것인지 잘 모르겠어서 한 번 공부해 보았다. 유효숫자는 수의 정확도와 정밀도에 영향을 주는 숫자를 의미한다. 수의 정확도와 정밀도에 영향을 준다는 말은 무슨 말일까? 예를 들어 사과 5432개가 있다. 이 사실을 다른 사람에게 한 치의 오차도 없이 정확하게 전달하려면 5, 4, 3, 2 이 4개의 숫자를 10진법을 이용해 표기해야 한다. 이때 5, 4, 3, 2 이 4개의 숫자를 수의 정밀도에 영향을 끼치는 유효 숫자라고 할 수 있다. 만약 5432.0000000 이런 표기가 있다고 했을 때 소수점 뒤의 무수히 많은 0은 모조리 유효 숫자 취급을 받지 못할 것이다. 소.. 2023. 6. 26.
알면 알수록 헷갈리는 포인터 뽀개기 1. 컴퓨터는 메모리 안에 저장된 데이터에 어떻게 접근하는가? 메모리 안에 10이라는 정수형 숫자를 저장해놓았다고 치자. 그렇다면 용량은 끽해봐야 8byte(long long형을 쓸 경우). 몇 백기가가 넘어가는 주메모리에는 수없이 많은 데이터들이 있을 텐데 이걸 어떻게 찾을 수 있을까? 택배기사가 수없이 많은 집 중 배달을 시킨 집 딱 하나만 골라내기 위해 주소를 사용하듯 컴퓨터도 드넓은 메모리 안에서 원하는 데이터를 찾아내기 위해 주소(address)를 사용한다. 데이터마다 서로 다른 주소값을 부여해 구분하고 해당 데이터가 필요할 때마다 그 데이터만 정확히 콕 찝어서 데려간다. 컴퓨터는 주소를 통해 메모리에 저장된 데이터에 접근한다. 2. 사용자는 메모리 안에 저장된 데이터에 어떻게 접근하는가? 포인.. 2023. 6. 25.