[C/C++] Declaration VS Definition
·
Language/C C++
Declaration은 변수의 이름, 타입, 초기값(있다면)에 대한 정보를 컴파일러에게 알려주는 것이다. 즉 선언이란 한 변수의 속성에 대해 자세한 내용을 제공하는 것이다.Definetion이란 변수가 어디에 저장되어있는지, 즉 변수가 메모리 어디에 할당되는지를 말한다.C에서 변수에 대한 선언과 정의는 동시에 일어난다.int a;a라는 변수에 이름(a)과 타입(int)같은 정보가 컴파일러로 보내져 심볼테이블이라는 자료구조에 저장될 것이다. 이를 통해 메모리에는 4byte가 할당될 것이다.변수의 선언은 일어나지만 정의는 일어나지 않는 경우를 보자. 바로 extern 키워드를 사용할 때 이다.xxxxxxxxxxextern int a;extern 키워드는 다른 파일에서 미리 정의된 변수 이름을 가져올 때 사용..
[C/C++] const keyword
·
Language/C C++
[C/C++] const keywordconst 키워드를 적절히 사용할 수 있으면 유용하다. 코드 작성 중 발생할 수 있는 실수를 컴파일 단계에서 확인가능하기 때문에 활용하면 좋다. const의 개념은 간단하다. 이 키워드를 통해 선언되면 프로그램 실행 중 변경할 수 없음을 지정한다. 이를 통해 할 수 있는 기능 중 하나는 상수 지정이다. 상수를 지정하는 다른 방법은 #define을 이용하는 것이다. const는 #define보다 이점을 가지고 있다. 먼저 #define을 사용할 경우는 단순 대체만 수행하기 때문에 타입 확인을 할 수 없는 반면 const를 사용하면 컴파일러에서 확인이나 검사가 가능하다. 또한 const변수를 이용하면 디버거에서 변수를 이용할 수 있어 디버깅에 유용하다.포인터와 const..
시간 측정
·
Language/C C++
시간측정방법 어느 정렬이 얼마나 빠른지 알고싶다. 프로그램 내에서 시간이 얼마나 지나는지 측정하는데 clock함수를 사용한다. clock 함수는 호출된 시점의 시간을 반환하는 함수이다. 우리를 이를 이용하여 시간측정을 할 수 있다. clock 함수로 시작시간을 구하고연산이 끝난뒤 다시 clock함수를 호출한다.2에서 1을 빼면 얼마나 시간이 지났는지 측정할 수 있다.#include#include // clock()int main (){ double start = clock(); // 측정시작 /*************/ /* 연산내용 */ /*************/ double end = (clock()-s) / CLOCKS_PER_SEC; //초 단위로 표시하기 위해 CLOCKS_PER_SEC을 나누..