[C/C++] 가변 인자 사용 방법 (Variable Length Argument)

실험 환경 OS: Ubuntu 18.04 g++: 7.5.0 C/C++에서 함수를 만들 때 인자의 개수가 정해져 있지 않은 경우 가변 인자를 사용해서 편리하게 함수를 제작할 수 있다. 저의 경우 Debug를 위한 나만의 Printf를 제작하는 과정에서 사용하였다. 가변 인자 사용방법에 대해서 간단히 정리해보았다. 사용 방법 함수 인자 부분에 “…” 을 추가함 예: mkFindMin(int numArg, …) {} va_list( )를 … Read more

[C/C++] 레퍼런스(참조자) vs. 포인터 (Reference vs. Pointer)

전문가를 위한 C++(출처1) 책을 읽다가 Reference(레퍼런스, 참조) 변수에 대해서 알게 되어서 정리하였다. 개인적인 느낌이지만 Reference 변수를 잘 사용하면 Pointer를 사용할 때 보다 실수를 적게 하면서 프로그램을 작성할 수 있을 것 같다. Pointer와 Reference 변수를 선언해서 사용하는 방법은 아래와 같다. 기본적으로 함수를 호출하면 변수를 복사해서 사용한다. 하지만 Pointer와 Reference를 사용하면 변수를 복사하지 않고 참조 전달 방식(Pass … Read more

[C/C++] 수행 시간 측정 방법 (clock_gettime() 함수)

실험환경 OS: Ubuntu 18.04 코드를 작성하고 정확한 동작 시간을 확인해야 하는 경우가 있다. 이러면 clock() 함수를 사용해서 시간을 측정해도 되지만 Multi-Threads 프로그램을 사용하는 경우 잘못된 결과가 출력되는 경우가 발생한다. 이런 경우 clock_gettime(…) 함수를 사용해서 수행 시간을 측정하면 된다. 아래 코드 1은 clock_gettime(…) 함수를 사용해서 시간을 측정하는 예제 코드이다. 코드 1: 실행 시간을 측정하기 위한 코드 … Read more

[C/C++/Algorithm] Size of Data Type

2주 정도 전에 Programming 시험을 쳤다. 다행히 문제를 풀기는 했는데, Data Type들의 사이즈를 헷갈려서 printf 함수를 사용해서 가능 범위를 확인하고 문제를 풀 수 있었다. 그래서 간단하게 Data Type들의 출력 가능 범위를 짧게 정리해보았다. 위 내용은 당연히 알아야 하는 정도의 기본인지도 모르겠다 (어쩌면 기본도 없이 Programming 시험을 보러 다녔는지도 모르겠다). 출처 https://intellipaat.com/tutorial/c-tutorial/c-data-types/ https://www.tutorialspoint.com/cprogramming/c_data_types.htm

[C/C++] 매크로 함수 (Macro)

프로그래밍 시험 결과가 좋지 않아서 공부하게 되었다. 새롭게 배우거나, 아직 익숙하지 않은 부분을 기록으로 남기려고 한다. 개인적으로 프로그래밍을 하다 보면 동일한 코드를 계속 작성하는 경우가 있는데, 이러한 습관이 실수를 늘린다고 한다. 그래서 매크로 함수를 사용하면 코드가 간결해져서 좋고, 실수를 줄일 수 있다고 한다. (모든 분이 선호하는 방법은 절대 아니라고 한다) #include<stdio.h> //MK: 매크로 함수 사용 … Read more

[C/C++] ”와 “”의 차이 (Difference between ” and “” in C)

개인적인 사정으로 프로그래밍 시험을 보게 되어서 예상 문제를 풀어보면서 하나의 char에 대해서 ” (Single Quote)와 “” (Double Quotes)를 사용하면 다른 결과 값이 나와서 인터넷에 검색해 보았다.  ”(Single quote)의 경우 하나의 char에 대해 사용한다. “”(Double quotes)의 경우 여러 개의 char (Array of Chars) 다시 말해서 string에 사용한다. “”를 사용하여 char를 비교하는 부분을 작성했는데 이 부분에서 ”를 사용하지 … Read more