본문 바로가기

프로그래밍 언어

서식 지정자 및 출력 포맷 서식 지정자 형식 : %[플래그][폭][.정밀도][길이] // 정수 printf("%u\n", 10); // 10: 부호 없는 10진 정수 printf("%d\n", -20); // -20: 부호 있는 10진 정수 printf("%i\n", -20); // -20: 부호 있는 10진 정수 printf("%o\n", 071); // 71: 부호 없는 8진 정수 printf("%x\n", 0xF1); // f1: 부호 없는 16진 정수(소문자) printf("%X\n", 0xF1); // F1: 부호 없는 16진 정수(대문자) // long, long long 정수 printf("%lu\n", ULONG_MAX); // 4294967295: 부호 없는 long printf("%ld\n", LONG_MAX);.. 더보기
Trouble Shooting Visual Studio 정적 라이브러리 빌드 방법 holinder4s.tistory.com/21 32bit 형변환 vs 8bit 조합 (uint32)message[0]; or ((message[3] 더보기
sprintf, vprintf, svprintf 사용법 목차 int vprintf(const char *_Format, va_list _ArgList); // 가변인자 받는다. printf와 사용법이 같다. int sprintf(char *_Dest, const char * _Format, ...); // 버퍼(_Dest)에 출력 값 담는다. int vsprintf(char *_Dest, const char *_Format, va_list _ArgList); // 버퍼(_Dest)에 출력 값 담는다. 가변인자 받는다. ※ int fprintf(FILE *stream, const char* format, ...); // 파일 포인터에 출력 값을 담는다. ※ vprintf는 printf와 유사하고, vsprintf는 sprintf와 유사하다. ※ or 에 속해 .. 더보기
[c] 공용체(Union) 사용법(feat. Embedded) 1. 공용체 특징 구조체와는 다르게 '가장 큰 자료형 크기를 기준으로' 모든 멤버가 공간을 공유한다. 2. 사용 예시(in embedded system) typedef union { struct { uint32_t _reserved0: 1; uint32_t SLEEPONEXIT: 1; uint32_t SLEEPDEEP: 1; uint32_t _reserved1: 1; uint32_t SEVONPEND: 1; uint32_t _reserved2: 27; } b; uint32_t w; } SCR_Type; SCR_Type SystemControlRegister; SystemControlRegister.w = SCB->SCR; //SystemControlRegister.b.SLEEPDEEP = 1; SCB->.. 더보기
Collections utils ▶ Counter - 해시 가능한 객체를 카운팅 하기 위한 dict의 하위 클래스이다. - 리스트를 입력 값으로 넣으면 원소를 Key 값으로, 갯수를 Value 값으로 반환해 준다. import collections class collections.Counter([iterable-or-mapping]) 사용 예시 from collections import Counter myList = ['red', 'blue', 'red', 'green', 'blue', 'blue'] cnt = Counter(myList) print(cnt) ''' Counter({'blue': 3, 'red': 2, 'green': 1}) ''' for item, count in Counter(myList).items(): # cnt.. 더보기
Miscellaneous 1) python -m 의 의미 e.g. python -m canmatrix.cli.convert [args] -m 뒤에는 모듈 이름이 온다. -m은 sys.path에서 모듈을 검색하고 모듈을 실행한다. (파일 canmatrix.cli.convert.py 의 __main__ 모듈을 실행 한다) 즉, 인터프리터로 하여금 canmatrix.cli.convert를 모듈 취급하게 한다. 해당 옵션은 빌트인 모듈이나, C로 작성된 확장 모듈 파이썬 모듈 파일을 가지고 있지 않기 때문에 사용할 수 없다. 2) for-else문 - 파이썬에는 for-else문이 있다. - for문을 모두 완수(?) 하고 통과할 경우 else: 구문이 실행된다. - break 등으로 for문이 완료 되지 않았다면 실행되지 않는다. f.. 더보기
수준 높은 회사가 C언어 자료형을 사용하는 방법 Win32, MFC 등과 같은 큰 규모의 시스템 프로그래밍 API 혹은 칩 벤더사의 SDK를 보면 자료형을 예술적(?)으로 사용한다. 본인이 느낀 공통점은 다음과 같다. Base 자료형을 먼저 정의 Base 자료형을 상속받은(혹은 원소로 하는) 새로운 자료형 정의 상황에 맞는 혹은 라이브러리 별 자료형을 새로 정의 이런 식으로 자료형을 만들면, 구조체 형변환을 통해 필요한 부분만을 읽어와서 수정하는 등 자유 자재로 활용이 가능하다. 말로 표현하긴 쉽게 와닿지 않을 것 같아서 예시를 들어 설명을 해본다. 먼저, BaseType typedef struct _BASE { uint16_t ByteAllocated; # 데이터를 표현하는 정보 1 uint8_t Bitlength; # 데이터를 표현하는 정보 2 u.. 더보기
입 출력 속도 개선 한 줄 입력 from sys import stdin n = int(stdin.readline()) 리스트 입력 _list = list(map(int, stdin.readline().split())) # 한줄 읽어 들이고, 공백을 기준으로 분할 한뒤, int로 맵핑한다. 2차원 배열 입력 arr = [] for i in range(col_len): arr.append(list(map(int, stdint.readline().split()))) # append를 쓰는 것이 arr[i]로 접근 하는 것 보다 조금 빠르다. [Reference] https://breakcoding.tistory.com/109 더보기