본문 바로가기
반응형

언어/C언어17

Struct, Union 응용 C언어에서 Struct는 구조화된 변수를 정의해놓고 사용할 때 많이 사용됩니다. 대게는 Struct 사용만으로도 충분히 프로그램이 깔끔하게 보일 수 있지만 한발 더 나아가서 편리한 Union과의 응용방법에 대해 정리하도록 하겠습니다. 먼저 Struct에 int형 변수가 두 개 있다고 가정하도록 하겠습니다. Struct{ int8 testA; int8 testB; } test_data; 프로그램 실행 중 testA와 testB를 각각 필요로 하는 순간에는 test_data라는 구조체를 통해 접근이 가능합니다. test_data.testA; test_data.testB; 여기에서 사용자는 int16형의 변수에 A와 B를 합치고 싶다고 가정하면 다음과 같이 복잡하게 수식을 써서 합쳐주어야 합니다. int16 .. 2022. 1. 25.
switch문 다중처리 Switch문 작성에 있어 대게는 break문을 통해 한 구절만 실행되고 빠져나가는 형태로 사용이 되지만 이 Switch문을 통해서도 다중 조건을 적용할 수 있습니다. 예를 들어서 if문을 가지고 여러 가지 조건을 적용하기 위해서는 다음과 같습니다. if( (inputA) || (inputB) || (inputC) ){ // 조건만족 } input으로 들어오는 A,B,C중 어느 하나라도 참이면 조건을 만족합니다. 하지만 Switch문에서는 다음과 같은 구조를 가지고 있습니다. Switch(inputType){ case inputA: // 조건처리 break; case inputB: // 조건처리 break; case inputC: // 조건처리 break; } 이러한 구조에서는 A,B,C별로 각각 조건에.. 2022. 1. 11.
문자열 파싱 strtok 통신의 기본 중에 데이터 파싱은 반드시 숙지하고 있어야 합니다. 많은 방법들이 있겠지만 가장 간단하고 C언어에서 지원하는 strtok라는 함수에 대해 알아보겠습니다. strtok함수는 string.h 파일에 선언되어 있으며 대상이 되는 문자열에서 자르기 위한 기준이 되는 문자를 가지고 데이터를 잘라줍니다. strtok(대상 문자, 자르기 위한 기준 문자); strtok 함수도 여러가지 사용방법이 있지만 가장 먼저 구조를 알기 위해 하나하나 파싱 하는 방법부터 살펴보겠습니다. #define #define unsgined char data[30] = "Hello Coding Hero"; char *ptr = strtok(data," "); 위 코드의 실행 결과는 무엇이 나올까요? ptr을 출력해보면 아래와 .. 2022. 1. 5.
Log파일 기록 리눅스상에 프로그램을 설계할 때 로그만큼 중요한 게 없습니다. 로그를 통해 에러를 찾아내고 Application의 동작을 추적할 수 있습니다. 그만큼 필수적인 로그를 C언어 프로그램 Application에서 어떻게 기록할 수 있는지 알아보겠습니다. 먼저 함수를 하나 만들어서 write_log라는 이름으로 지정했습니다. 그리고 인자로는 로그에 기록할 message로 설정해 주었습니다. 함수 내부 내용 중 중요한 항목은 중간라인쯤 보이는 DF_LOG_FILE_NAME입니다. fopen을 통해 로그파일을 쓸 path를 지정해주는 곳인데 원하는 위치를 define 해주면 됩니다. 저는 해당 경로에 test.log파일로 지정을 해주었습니다. 2021. 12. 30.
현재 날짜,시간 출력 리눅스 C언어 Application 프로그램에서 현재시간 값을 구하는 경우가 적지 않게 접할 수 있는데 time.h 표준 라이브러리를 통해 시간 값을 가져오는 방법을 알아보겠습니다. 기본적으로 time.h 라이브러리가 include가 되어있다는 가정하에 tm 구조체를 이용해서 localtime을 가져옵니다. 여기서 주의해야 할점은 year 값에는 1900을 더해주면 현재 년도가 나오고 month에는 1을 더해주면 현재의 월이 나옵니다. 이점만 유의하면 나머지는 그대로 가져오면 현재 시간입니다. 2021. 12. 15.
반응형