한국어
C/C++
 

3.1.1 Literal value requires(Arithmetic type conversion)

*MISRA-C:2004 10.6에는 “unsigned형의 모든 상수에는 접미사‘U’를 사용하여야 한다.”라고 명시되어 있다.


MISRA-C:2004 10.6의 사용 방법은 아래 그림과 같다.

K-20140515-356734.png

 

아래 그림은 신호처리 모듈의 실험결과 10.6의 오류가난 부분이다.

K-20140515-356955.png

 

PacketDecoder함수에서 ReturnCmd=0;이라 선언 할때 ReturnCmd변수는 unsigned로 선언되어 있기에 ReturnCmd=0U;로 수정되어야 한다.


프로그램에서 수치 상수를 사용할 때 C언어의 컴파일러는 자동적으로 치환문의 왼쪽의 변수 타입에 따라 치환문의 오른쪽에 있는 타입을 변환한다.
만약 수치 상수에 대하여 잠정적으로 결정된 타입을 사용하기 원하지 않는다면 접미사를 사용하여 정확한 타입을 지정해주어야 한다.
만약 접미사를 사용한 정수타입 상수가 오버플로우 때문에 최대값을 초과하였을 경우 컴파일러는 이에 대해 경고를 준다.


그러나 접미사를 사용하지 않아 명확하게 설명되지 않은 정수형 상수는 정수타입의 가장 작은 값으로 나올 수 있는 가능성이 있다.
*감시 시스템의 신호 처리 모듈은 정확한 값을 전달하여 위험을미리 방지하는 것이 목적이므로 접미사를 사용하여 다른 값이 나올 가능성을 사전에 차단하여야 한다

 

정보과학회논문지: 컴퓨팅의 실제 및 레터 제19권 제3호(2013.3)
임베디드 S/W 개발 시프로그래밍 개선점 -MISRA-C를 중심으로(Programming Enhancements for Embedded Software Development- focus on MISRA-C)

 

 


*MISRA: 영국 자동차 산업 신뢰성 협회(MISRA: Motor Industry Software Reliability Association)

 

*감시시스템: 여기서의 감시 시스템은 원자력 발전소에서 사용되는 것을 말한다. 원자로의 중대 사고를 방지 하기 위해 수소농도를 실시간 모니터링하는 목적으로 사용되며 감시 시스템의 소프트웨어 오류는 엄청난 피해를 유발할 수 있는 가능성이 있다. 따라서소프트웨어의 품질과 안전성이 필수적인 시스템이다. 이밖에 안전에 직결된 분야, 예를 들어 자동차, 로봇, 의료 등에도 관련이 있다.

번호 제목 글쓴이 날짜 조회 수
공지 C Programming FAQs(한글번역 pdf문서) makersweb 2014.03.18 27664
22 C코드 최적화 pjk 2014.02.10 5886
21 C언어 강좌-배열과 포인터 file makersweb 2014.03.10 5165
20 영어를 C언어로, 또는 C언어를 영어로 변환 해주는 cdecl makersweb 2014.03.19 8556
19 예제소스를 통해 리틀엔디안(Little endian)과 빅엔디안(Big endian)의 차이점 알아보기 pjk 2014.05.24 8653
18 Bit fields(비트필드) pjk 2014.05.24 4833
17 구조체 메모리 저장방식 #pragma pack file pjk 2014.05.24 5899
16 함수 포인터의 배열 pjk 2014.05.24 8637
15 void형 포인터 pjk 2014.05.24 6051
» unsigned형의 모든 상수에는 접미사 ‘U’를 사용하여야 한다. file pjk 2014.05.24 38730
13 클래스 멤버에 대한 액세스 제어 pjk 2014.06.27 5504
12 strcmp, wcscmp, _tcscmp pjk 2014.07.18 11426
11 HEX(16진수) to ASCII(아스키) 변환 코드 pjk 2014.08.24 34933
10 volatile이 정확히 어떤 의미를 가지는 건가요? pjk 2014.09.30 5458
9 c/c++문자열, 유니코드 관련 함수 makersweb 2015.07.09 6185
8 구조체 배열을 반환하는 함수를 반환하는 함수를 호출하여 구조체 멤버 배열 요소 접근하기 makersweb 2016.05.22 10823
7 switch와 if 중 어느 것이 더 빠른가 file makersweb 2017.01.31 3779
6 함수포인터와 typedef로의 선언 makersweb 2018.02.03 1974
5 싱글톤 객체생성 패턴에 대해서 file makersweb 2018.07.01 4500
4 배열과 포인터, 등가포인터 예제 makersweb 2019.01.16 1956
3 C++로 플러그인 개발 file makersweb 2019.12.08 2699