[C언어] const 키워드
·
소프트웨어/C
const 키워드를 사용하면 변수를 상수로 사용할 수 있다. 다시말해, const 변수에 할당된 값을 변경할 수 없게된다. const 상수화를 사용하는 이유는, 레지스터 주소와 같이 고정되어 있어야 할 값을 변경하는 실수를 미연에 방지하기 위해서이다. 사용 예시!const int a = 1;a = 0; //
[C] void* 포인터
·
소프트웨어/C
전문가를 위한 C 책을 보다가, 다음과 같은 함수를 만났다. void* thread_body(void* arg){ printf("Hello from first thread!"); return NULL;}음... 이전에 void형 포인터를 공부한 적이 있었는데 까먹었다.. 이참에 확실히 정리해두고자 한다. int a = 10;int* b = &a;이 코드를 말로 풀어 설명하면 "b는 a의 주소를 저장하는데, 그 주소에는 int형 데이터가 있다." 이다. 맞는 말이다.int a=10;void* b=&a;이번엔 이 코드를 풀어 설명하면 "b는 a의 주소를 저장하는데, 그 주소에는 void형 데이터가 있다." 이다.그런데... void는 값이 없음을 의미하는 심볼이 아니던가? 컴퓨터는 자료형을 모르기 때..
[C] 분할 컴파일
·
카테고리 없음
하나의 프로그램을 여러 사람이 나누어 개발할 수 있다면 프로그램의 크기가 커도 충분히 개발 기간을 줄일 수 있다. 단 2가지 문제를 해결해야 한다.하나는 개별적으로 코드를 작성하고 컴파일 및 에러 수정을 할 수 있어야 한다. 두 번째는 각 개발자들 간의 데이터 공유와 코드 재활용이 가능해야 한다. C언어는 분할 컴파일을 통해 여러 개의 소스 코드를 각각 독립적으로 작성하고 컴파일 할 수 있으며 컴파일된 개체 파일을 링크해 하나의 큰 프로그램으로 만들 수 있다.또한 extern 선언을 통해 파일들 간 데이터를 공유하고 전처리 지시자로 코드를 쉽게 재활용할 수 있다. 분할 컴파일을 위해 파일을 나눌 땐 주의할 것이 있다. 각 파일을 독립적으로 컴파일 할 수 있도록 필요한 선언을 포함해야 한다는 것이다. 즉..
[C] 헤더파일에 대하여
·
소프트웨어/C
"헤더 파일을 사용하면 프로그램을 깔끔하고 편하게 작성할 수 있습니다. 보통 하나의 프로그램은 독립적으로 컴파일 가능한 파일 단위인 module로 나누어 분할 컴파일합니다. 따라서 각 모듈이 같이 사용하는 구조체나 함수 또는 전역 변수를 하나의 헤더 파일로 만들면 필요한 모듈에서 쉽게 포함하여 쓸 수 있습니다. 이 경우 헤더 파일의 내용이 수정되더라도 컴파일만 다시 하면 수정된 내용이 모든 파일에 동시에 적용되므로 빠르고 정확하게 수정할 수 있습니다."책 혼자서 공부하는 C언어 p559 "#include는 사실 파일의 내용을 단순히 복사하여 붙여넣는 기능을 합니다. 따라서 텍스트 형태의 파일이면 모두 사용할 수 있습니다. 심지어 소스 파일을 포함할 수도 있습니다. 예를 들어 다음과 같이 main 함수의 ..