C 소스에 이진수 표기법을 사용할 수 있나요?
기술노트 46979
아키텍처:
All
컴포넌트:
compiler
업데이트:
2021-05-04 오전 9:12
소개
C 소스코드를 IAR Systems의 컴파일러를 이용해 컴파일을 할때, 0b01010101
처럼 이진수 표기법을 사용할 수 없습니다.
배경지식
C 언어(C99와 C89포함)에 의한 0b01010101
와 같은 표기법은 지원하지 않습니다. IAR Systems는 이러한 표기를 지원하는 확장성은 추가하지 않았습니다. (이러한 표기법은 C 소스의 이식성(portable)을 저하 시킵니다.)
이렇게 하세요.
방법은 간단합니다, (예시로) 바이너리 값 5는 다음과 같이 사용할 수 있습니다.
#define b0000000000000101 0x0005
이러한 #define
은 응용프로그램에서 사용되는 모든 바이너리 값을 위해 추가될 수 있습니다.
템플릿
간단히, 파일을 다운로드 하세요. 압축된 zip파일은 두개의 파일을 포함하고 있습니다.
- Binary_values_8_bit.txt 파일은 양의 8비트 이진수 값에 대한 정의를 담고 있습니다.
- Binary_values_16_bit.txt 파일은 양의 16비트 이진수 값에 대한 정의를 담고 있습니다.
사용방법
C 언어의 관점에서 텍스트 파일은 헤더 파일이 아닙니다. (큰 파일은 64.000 이상의 #define
s 을 포함하고 있으며, 이것은 매우 무겁게 만듭니다.)
대신에 텍스트 파일에서 필요한 #define들을 복사하여 프로젝트의 헤더 파일에 추가하세요. 이렇게 하면 사용하지 않는 #define로 인한 빌드 시간에 불이익을 받지 않을 수 있습니다.
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.