inflearn logo
강의

Course

Instructor

Everything about STM32 drone development starting from the ground up

9-3. During Flight, Fail-safe Motor Stop and Low Voltage Warning Sound Output

변수 선언

51

Jaewon Ahn

5 asked

0

안녕하세요. 변수를 선언하실 때 크기에 따라 char, short로 선언하시는데

uint8_t나 uint16_t으로 안하시는 이유가 있나요?

iot 드론-개발

Answer 2

0

ChrisP

안녕하세요.

특별한 이유가 있는 것은 아닙니다.

char, short, int 등은 C언어에서 기본적으로 제공하는 데이터 타입이므로 별도의 typedef 선언이 필요하지 않을 뿐 uint8_t 등을 사용하셔도 됩니다.

단, 그러기 위해서 uint8_t 가 어딘가에 typedef로 데이터 타입 지정이 필요합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. Jaewon Ahn님.

변수 선언 시 char, short와 같은 기본적인 자료형을 사용하는 대신 uint8_tuint16_t를 사용하지 않는 이유에 대해 궁금해하시네요.

이와 관련하여, charshort를 사용하는 이유는 아래와 같습니다:

  1. 가독성 및 익숙함: 많은 개발자들이 char, short 등의 전통적인 자료형에 더 익숙하며, 코드의 가독성을 높일 수 있습니다.

  2. 플랫폼 간의 호환성: 특정 플랫폼에서는 int, short 등이 변환되거나 다르게 작동할 수 있는데, 이런 경우에도 charshort 등의 기본형을 사용하는 것이 유리할 수 있습니다.

그러나 uint8_t, uint16_t 같은 명시적인 크기를 가진 형식을 사용하는 것도 여러 장점이 있습니다:

  1. 명확한 크기 명시: 코드를 작성할 때 명시적으로 크기를 지정함으로써, 어떤 경우든 8비트 또는 16비트의 정수를 사용하고 싶다는 것을 확실히 합니다.

  2. 이식성: 크기를 명확히 지정하기 때문에, 플랫폼이나 컴파일러가 달라져도 일관성 있는 동작을 기대할 수 있습니다.

관련하여 ChrisP 지식공유자님이 있던 인터럽트안에서 변수처리와 같은 질문 게시물을 참고하시면 도움이 될 것 같습니다. 여기서도 비슷한 논의가 이루어지고 있습니다. 각 자료형의 사용 의도나 환경에 따른 고려사항에 대해 더 깊이 이해하실 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

비행승인 문의드립니다

0

37

0

드론의 M4 모터가 느리게 작동합니다.

0

61

2

STM32CubeIDE 관련해서 질문이 있습니다.

0

91

2

while문 루프 속도

0

60

2

FS-i6를 꺼도 LED 토글되는 이유

0

67

2

Fs-i6 i-bus 수신 데이터 이상

0

109

3

3-4. UBX 위도 경도 정보 Terminal에서 깨짐 현상

0

87

2

3-4. LED 토글 안됨

0

49

1

3-1. M8N GPS 강의 통신 연결 관련 문의

0

78

1

2-3. LPS22HH 강의 수행값이 아두이노 IDE Plotter 및 Terminal에서 인식 안됨

0

77

2

6-4 SwC 2000

0

103

2

6-4 ESC Calibration

0

68

1

esc, 모터 교체

0

111

2

부저 소리가 안납니다.

0

134

2

비행 질문

0

63

1

7-5. offset

0

75

2

sysmem.c

0

73

2

전체 제어의 주기를 1KHz로 설정한 이유가 궁금합니다.

0

89

2

부품 구매 관련 문의

0

65

1

PID 게인 문제

0

83

3

3d telemetry cp210x 연결

0

121

2

8-1. 3DR Telemetry HAL_UART_Receive_IT(&huart1, &uart1_rx_data, 1); 관련 문의

0

71

2

PID제어 질문

0

124

2

m8n module

0

70

2