본문 바로가기

공부/C6

C - clock_gettime clock_gettime의 선언부이다.int clock_gettime(clockid_t __clock_id, struct timespec *__tp);clockid_t는 아래와 같이 정의되어 있는데 이 id로 어떤 시간을 갖고 올지 정할 수 있다.typedef enum {_CLOCK_REALTIME __CLOCK_AVAILABILITY = 0,#define CLOCK_REALTIME _CLOCK_REALTIME_CLOCK_MONOTONIC __CLOCK_AVAILABILITY = 6,#define CLOCK_MONOTONIC _CLOCK_MONOTONIC#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)_CLOCK_MONOTONIC_RAW __CLOC.. 2024. 7. 6.
C - struct란 무엇이고 왜, 어떻게 사용하는가? C언어에는 struct라는 자료구조가 있다.이 struct가 무엇인지 먼저 사용법을 알아보고 그 다음으로는 왜 쓰는지 알아보자.struct 사용법struct키워드를 사용하여 struct를 선언할 수 있다.User struct안에는 id, age, weight가 int타입으로 정의되어 있는 것을 볼 수 있다.struct User { int id; int age; int weight;};사용할 때는 struct 타입이름 변수이름 으로 선언할 수 있다.타입이름? 뭔가 이상하지 않은가. 그렇다 struct로 정의를 하면 내가 직접 타입을 하나 만드는 거랑 똑같다.struct User u;. 을 사용해서 struct의 원소에 접근하여 참조 및 수정을 할 수 있다.u.id = 1;u.age = 25.. 2024. 7. 4.
왜 시스템 프로그래밍을 해야 하는가? 요즘은 C언어 보다는 보통 Python, JavaScript, Java같은 고수준 언어를 배운 뒤 웹, 앱, 서버 같은 애플리케이션 프로그래밍을 한다.시스템 프로그래밍은 좀 더 저수준의 기능을 사용할 수 있도록 한다. 추상화가 별로 되어 있지 않은데 이 커널을 이용해서 프로그래밍을 한다. 직접 커널을 조작하고 호출하여 자원을 조작한다. 그러면 애플리케이션 프로그래밍에서는 그렇게 만들어진 인터페이스를 사용한다.그냥 이미지를 불러오고 서버와 통신하고 드래그 앤 드롭을 하겠지만 이런 기능들의 기계 수준까지 내려가보면 수많은 복잡한 동작들이 있다. 애플리케이션 프로그래밍을 하면 이런 구체적인 구현부는 신경 안 써도 된다. 그저 잘 추상화된 것들을 사용만 하면 된다.그럼 그냥 원래 있는 거 갖다 쓰면 되지 왜 시.. 2024. 7. 3.
C - const 키워드 알아보기 const 키워드란?변수 선언할때 아래와 같이 코드를 작성한다.int a = 10;const는 앞에다가 const키워드를 붙여서 사용할 수 있다. constant(상수)라는 뜻으로 값을 한번 대입하면 바꿀 수 없다.const int a = 10;a = 11 // cannot assign to variable 'a' with const-qualified type 'const int'왜 씀이 const라는 것은 왜 쓸까? 코딩을 하다보면 값을 변경할 수 없도록 해야 할 때가 있다. (당연하게도)더 자세히 알아보자const int a;라고만 하고 초기값을 설정해주지 않으면 값을 대입할 수도 없고 쓰레기 값이 들어간다. 사실상 무의미하기 때문에 const키워드를 사용한다면 반드시 초기값을 설정해야 한다.cons.. 2024. 7. 3.