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 이상의 #defines 을 포함하고 있으며, 이것은 매우 무겁게 만듭니다.)
대신에 텍스트 파일에서 필요한 #define들을 복사하여 프로젝트의 헤더 파일에 추가하세요. 이렇게 하면 사용하지 않는 #define로 인한 빌드 시간에 불이익을 받지 않을 수 있습니다.

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.