2016-06-03 5 views
0

Atmel Studio 7에서 C++ 루핑 작업을하고 있습니다. stdbool.h, stdint.h 또는 비슷한 AVR-GCC 라이브러리를 헤더/C++ 파일에 포함해야합니까? bool은 C++의 키워드이지만 모든 C++ 기능이 지원되는 것은 아니기 때문에 마이크로 컨트롤러 프로젝트에 적용되는지는 알 수 없습니다. uint8_t 또한 키워드가 아니므로 typedef입니다. 그러나 내가 그들을 포함하지 않으면, 프로젝트는 잘 준수합니다. uint8_t은 기본으로 프로젝트에 포함 된 것으로 보이는 stdint-gcc.h이 될 수 있습니다. 내가 그들을 사용해야하는 파일에 여전히 #include <stdbool.h>, #include <stdint.h>을 넣어야합니까?AVR C++ 프로젝트에 stdint를 포함해야합니까?

답변

0

아니요 컴파일하지 않고 포함 할 필요가 없습니다. 앞으로 Atmel Studio를 사용하지 않기로 결정한 경우에도 휴대성에 도움이 될 수 있습니다. Qtouch와 같은 독점적 인 라이브러리를 사용하고 있다면 특히 Atmel Studio에서 벗어나면 내 경험에 비추어 이식성 문제를 해결할 수 있습니다. 정말로 마이크로 컨트롤러를 휴대 가능하게 유지하는 것은 일반적으로 쓸데없는 일입니다.

+0

실제로 답변이 잘못되었습니다. 'uint8_t'는 해당 프로젝트의 파일에'avr/io.h'를 포함 시켰기 때문에 사용할 수있었습니다. 이 파일이 없으면'stdint.h'를 포함해야합니다. 그렇지 않으면 .cpp 파일이 컴파일되지 않습니다. "기본적으로"나는 그것들 중 일부가 하나의'#include '를 포함하지 않더라도 그것이 모든 파일에 추가된다는 것을 의미한다. 이것은 다른 헤더가'stdint.h '를 포함 할 때 동일하지 않다. – klenium

+0

@Klenium 실수로, Atmel Studio가 필요로하지 않는다면 마이크로 컨트롤러 코드가 절대로 이식 할 수 없기 때문에 Atmel Studio에 필요하지 않다는 것을 의미합니다. – bodangly

+0

Atmel Studio 이외의 다른 것을 모르기 때문에 IDE를 변경할 계획이 없습니다. :-) 어쨌든, 고마워, 내가 필요한 것을 알아. 다른 사람들을 위해 여기에 남겨 두겠습니다. – klenium