C ++ 대 Arduino 언어?


81

Arduino를 사용할 때 각 언어의 장점은 무엇입니까?

나는 이것이 좋은 일반적인 질문이라고 생각하지만, 누군가 나에게 팁을주고 싶은지 묻는 이유에 대해 조금 추가 할 것입니다.

JavaScript, PHP와 같은 사전 처리 언어에서 경험이 있으며 Java 및 Visual Basic과 같은 언어를 사용하고 있습니다. 다시 말해서 나는 프로그래밍 기술과 고전적 및 원형 객체 지향을 모두 알고 있지만 하드웨어와 직접 통신하는 것에 대해서는 아무것도 모른다.

나는 octocopter를 만들고 있으며 객체 지향 접근 방식이 가장 쉽다고 생각합니다. (소프트웨어에는 매우 많은 기능이 있습니다 ...) 그러나 저는 C ++로 작성된 적이 없습니다.

이 사이트는 다른 사람들을 돕기위한 Q & A 사이트이므로 처음에 제시된 일반적인 질문 만 중요하지만 내 상황에 대한 의견을 보내 주셔서 감사합니다.


16
Arduino IDE는 IDE 이름을 가질 가치가 없으므로 매우 열악한 편집기이므로 초보자와 간단한 스케치에는 좋을 수 있지만 빠르게 더 나은 것을 찾아야합니다.
jfpoilpret

4
이것은 "아두 이노 프로그래밍 언어"가 의미하는 것 (그리고 실제로 가장 중요한 것)을 간결하게 요약 한 것입니다.
AdjunctProfessorFalcon

10
C++ vs. The Arduino Language?- "아두 이노 언어" C ++입니다. 함수 프로토 타입을 수행하는 데 도움이되는 약간의 전처리가 있지만 가장 확실하게 C ++입니다.
Nick Gammon

2
arduino 언어는 없습니다. 단순히 도서관입니다.
Overdrivr

2
의견과 관련하여 질문과 관련이 없습니다 : Atmel 스튜디오는 무료이며 IMHO는 arduino 프로그래밍을위한 비주얼 스튜디오보다 낫습니다. Arduino를 프로그래밍하고 디버깅하는 데 전혀 필요하지는 않지만 Visual Micro 플러그인도 지원합니다.
cyberponk

답변:


55

교수 (프로그래밍, 메카트로닉스)로서의 개인적인 경험은 이전의 프로그래밍 경험이 있고 OOP라는 개념을 알고 있다면 C / C ++로가는 것이 좋습니다. arduino 언어는 초보자에게는 훌륭하지만 몇 가지 제한 사항이 있습니다 (예 : 모든 파일을 같은 폴더에 있어야 함). 그리고 그것은 기본적으로 C / C ++의 단순화입니다 (아루 이노 코드를 실제로 C / C ++ 파일에 복사하여 붙여 넣을 수 있으며 작동합니다). 또한 잘 알려진 IDE를 일식으로 사용할 수 있다는 것이 합리적입니다.

http://playground.arduino.cc/Code/Eclipse

처음에는 개발 환경의 설정 및 구성이 약간 더 필요하지만 IMHO는 다른 언어를 경험 한 프로그래머에게 유용합니다.

어쨌든 며칠 동안 arduino 언어와 arduino IDE를 사용하여 arduino 하드웨어에 익숙해 진 다음 프로젝트를 실제로 개발하기 위해 Eclipse를 사용하여 C / C ++로 이동하는 것이 해를 끼치 지 않습니다.


당신의 생각에 감사합니다. Arduino IDE를 사용하여 센서 및 LCD 화면 등과 같은 다른 모든 하드웨어 부분을 제어하는 ​​방법을 배우겠습니다. 그런 다음 옥토 콥터 용 소프트웨어를 만들기 위해 C ++로 이동합니다. 다른 언어를 아는 사람들을위한 좋고 짧은 책을 알고 있습니까? 내가 찾은 많은 책이있는 "문제"는 UI 컴퓨터가 아닌 작은 Atmel 마이크로 컨트롤러를 사용하기 때문에 내가 너무 많이 포함되어 있다는 것입니다.
Kim의 친구

1
Julien Bayle의 "C Programming for Arduino"라는 책이 유용하다. C ++ 언어가 아닌 C이지만 기초를 이해하는 데 도움이됩니다.
fenix688

좋은 요청 : 다른 언어의 프로그래머를위한 C ++의 기초를 가진 짧고 좋은 책. 추천을 할 수 없어서 죄송합니다. 좋은 것이 없습니다. 사실, 나는 학생들에게 실질적인 초점 (비디오 게임 개발)을 가진 책을 썼지 만 스페인어로만되어 있습니다. 훌륭하고 실용적인 C ++ 서적을 위해 Deitel & Deitel C ++ 프로그래밍 방법을 추천합니다. 많은 고급 장을 건너 뛸 수 있습니다.
drodri

1
C ++는 OO 기능을 지원하지만 C 언어는 지원하지 않습니다.
Chris O

1
@FriendofKim 정확히 의미하는 바는 아니지만 (기술적으로는 Due가 메가 비트가 아닌 직렬 통신을위한 소프트웨어 솔루션을 지원할만큼 빠르며, 총 5 개의 U (S) ARTS가있는 반면 Arduino 라이브러리는 4 개만 제공합니다. iirc Due 보드는 USART 중 하나에 핀을 제공하지 않습니다). Arduino 라이브러리는 USART가 비동기 모드를 사용하도록 구성하지만 최대 6Mbps의 동기가 필요했습니다 (입력을 원시 비트 스트림으로 처리해야하므로 정지 비트 등이 없으므로 SPI 모드를 사용해야했습니다). 기본 PIO 컨트롤러 구성 수정
JAB

48

이론적으로 ...
실제로 Arduino 언어는 없습니다. 실제로 도메인 특정 라이브러리가있는 C ++입니다. 이것들은 하드웨어를 제어하기 위해 호출 할 수있는 기능과 같은 다양한 기능을 추가합니다. 이러한 기능이 없다면 모든 것을 제어하기 위해 특수 레지스터를 직접 조작해야합니다. 이것이 임베디드 프로그래밍이 일반적으로 수행되는 방식입니다. 빠르지 만 배우고 이해하기가 매우 어려울 수 있습니다.

함수 외에도 라이브러리는 일부 유형의 대체 이름을 추가합니다. 예를 들어, booleanbyteC ++ 표준에 있지 않습니다. 그러나, 그들은 직접적으로 동등 bool하고 unsigned char.

이 모든 것들은 아마도 일반적인 C ++ 코드를 어려움없이 Arduino에 직접 이식 할 수 있음을 의미합니다. 그러나 다른 방법으로 돌아가려면 약간의 편집이 필요할 수 있습니다.

실제로 ...
아두 이노의 프로그래밍은 일반적인 C ++ 프로그래밍과 정확히 동일하지 않습니다. 제한된 메모리 및 처리 능력과 같은 모든 내장 프로그래밍에는 많은 차이점이 있습니다.

공식 Arduino IDE를 사용하는 경우 코드 설정 방법에 대한 성가신 단점과 제한 사항이 있다는 점에 주목할 가치가 있습니다. 모든 경우 (내가 아는 한) 해결 방법이 있지만 때로는 매우 실망 스럽습니다.

완전한 유연성을 위해 플러그인과 함께 타사 IDE (예 : Eclipse)를 사용하여 Arduino를 지원하십시오. Arduino 라이브러리와 함께 C ++의 모든 장점을 제공해야합니다.


25

Arduino를 사용할 때 C ++와 Arduino 언어의 장점은 무엇입니까? JavaScript, PHP와 같은 사전 처리 언어에서 경험이 있으며 Java 및 Visual Basic과 같은 언어를 사용하고 있습니다.

첫째, Arduino 컴파일러 / IDE는 C와 C ++를 그대로 받아들입니다. 실제로 많은 라이브러리가 C ++로 작성되었습니다. 기본 시스템의 대부분은 객체 지향적이지 않지만 가능합니다.

따라서 "아두 이노 언어"는 C ++ 또는 C입니다.

C ++는 가비지 수집되지 않습니다. 다음과 같이 작성하면 범위 내 변수를 관리합니다.

int led = 13;

void blinkTimes(int value)
{
   int i;

   for(i=0;i<value;i++)
   {
      digitalWrite(led, HIGH);
      delay(1000);
      digitalWrite(led, LOW);
      delay(1000);
   }
}

그러면 전화를 몇 번이나하더라도 그 사실을 알게 led되고 i자라거나 새지 않습니다 blinkTimes.

i클래스 라면 함수가 종료되면 마찬가지로 폐기됩니다. 따라서 new새로운 객체를 생성하기 위해 또는 유사한 메모리 할당 기능을 사용하지 않는 한 누출에 대해 걱정할 필요가 없습니다.

거대한 클래스를 만들고 깊이 중첩 된 함수에서 많은 클래스를 사용하면 메모리가 부족할 수 있지만 일반적으로 처리 newfree함수 를 시작할 때까지 문제가 발생하지 않습니다 .

를 사용하는 경우 적절한 시간 new에 전화해야합니다 delete. C ++ 및 확장 기능 Arduino에는 자동 가비지 수집 기능이 없으므로 자신의 메모리를 명시 적으로 관리해야합니다.


1
자, 인스턴스화 된 객체 (새로운 객체 포함)가 가비지 수집되지 않으면 그 사실도 알아야합니다. C ++에 관한 책이 그 내용을 다룰 것이라고 생각합니다. 좋은 답변 감사합니다!
Kim의 친구

14

Arduino 언어 C ++이지만 대부분의 C ++ 종류와는 매우 다릅니다. 아두 이노 언어는 특히 하드웨어 인터페이스에 내장 된 추상화가 많기 때문에 사용이 매우 간단합니다. Java에 대한 배경 지식이 있으면 C와 C ++은 매우 유사해야합니다.

Arduino와 C ++의 주요 차이점은 메모리 스토리지에 있습니다. 일반적으로 최신 컴퓨터에는 2GB 이상의 RAM이 있고 Arduino Uno에는 2kB (1 백만 배)가 있습니다. Arduino는 또한 컴퓨터가 사용하는 32 비트 명령어 대신 8 비트 명령어를 사용합니다. 이것은 주로 변수에 저장할 수있는 정보의 양에 영향을줍니다.

Arduino 세계를 처음 접한다면 많은 훌륭한 자습서가 있으므로 자습서를 찾아야합니다.


당신은 기억을 언급합니다. RAM이 96KB 인 Due가 있습니다. 그러나 내가 원하는 마지막 것은 메모리 누수로 인해 헬리콥터가 충돌하는 것입니다 (헬리콥터에 매우 비싼 카메라가 장착되어 있음).
Kim의 친구

달리 지정하지 않으면 C ++의 메모리가 자동으로 처리됩니까 (Java의 가비지 수집기)?
Kim의 친구

2
C ++ 표준은 메모리 크기를 보장하지 않습니다. c ++는 이미 수정없이 내장 하드웨어에서 실행됩니다.
Michael Thorpe

2
C ++이 아닌 하드웨어 플랫폼 간의 차이점을 설명하고 있습니다.
Cybergibbons

5
@FriendofKim C ++에는 변수 / 객체를 인스턴스화하는 두 가지 방법이 있습니다. 로컬로 인스턴스화하면 (예 int blah = 5;:) 범위를 벗어나면 (즉, 루프 또는 함수의 끝에서) 자동으로 삭제됩니다. 그러나 힙에서 인스턴스화하는 경우 (예 :) int *blah = new int(5);직접 해제해야합니다. 임베디드 프로그래밍에서 힙 데이터를 사용하는 것은 일반적으로 현명하지 않습니다.
피터 블룸필드

14

--- 업데이트 170412
3 년 전에 기존의 "Arduino C ++"이라는 기존 관점에서 원래 답변을 작성했습니다. IDE에서 사용되는 언어 입니다 그것이 GNU C ++ 컴파일러에 의해 구현되기 때문에, 표준 C ++. "명백한"차이점은 IDE가 일부 사전 처리를 수행하여 언어를 처음 접하는 사람들이 일부 #include, f / ex를 채워서 몇 가지 'gotcha'를 피할 수 있도록하기 때문입니다. 그러나 당신은 할 수 있습니다-그리고 나는 그것에 올바른 C ++를 작성하고 당신이 기대하는 것을 얻을 수 있습니다.
--- 최종 업데이트

C ++ 언어 기능의 사용을 완전히 이해 한 구현으로 제한하십시오. 소스 코드를 읽는 것보다 더 많은 자원 집약적 코드로 컴파일되는 기능이 있습니다. 선택적으로 생성 된 .lss (병합 소스 및 어셈블리) 목록을 사용하면 C ++ 컴파일러가 보이지 않을 때 수행 한 작업에 대한 통찰력을 얻을 수 있습니다.

메모리에 대한 질문 : C ++은 가비지 수집하지 않습니다. C 및 C ++와 같은 스택 기반 언어는 함수 입력시 자동 변수를 위해 스택에 임시 스토리지를 할당 한 다음 함수가 리턴 될 때 해제되지만 실제 가비지 콜렉션은 아닙니다. 힙 또는 전역 메모리에서 생성 된 객체는 명시 적으로 삭제할 때까지 유지됩니다. 다양한 종류의 객체가 생성되는 위치, 시간 및 기간을 알고 있어야합니다. 당신은 정말로 코드 newdelete객체를 원하지 않을 것 입니다. 힙 메모리에 내장되어 조각화되어 스택으로 커집니다. 그때 당신의 코드와 멋진 '헬리콥터'가 충돌 할 것입니다.

C는 당신을 위해 더 적은 일을하므로 덜 수 있습니다. 나쁜 선택이 아닙니다. 추가 기능을 신중하게 선택하면 C ++ 기능 중 일부가 더 나은 C가 더 나은 선택이 될 수 있습니다.

[원래 답변]-C ++는 표준화 된 언어입니다. 임베디드 시스템을 포함한 많은 환경에 널리 배포되므로 "Arduino"와 같은 C ++ 언어보다 철저하게 테스트됩니다. 이는 계획중인 미션 크리티컬 / 안전 크리티컬 애플리케이션에 특히 중요합니다. 충돌 된 코드는 충돌 한 '헬리콥터를 의미하며, 누군가를 다치게하지 않더라도 고가의 기계를 손상 시킬 수 있습니다.

  • 표준으로 C ++는 이식성이 뛰어납니다. 프로세서를 업그레이드해야합니까? 실리콘 관련 코드를 제외한 모든 것이 새로운 코드로 이식됩니다. 툴셋, 개발 시스템, 호스트 OS를 변경해야합니까? C ++은 모든 곳에서 지원됩니다. Arduino IDE는 Java가 지원되는 모든 곳에서 실행되지만 Arduino C ++를 사용하는 유일한 도구이며 매우 제한적인 도구입니다. Eclipse, AVR 도구를 사용하려면 명령 행에서 맨발로 이동하거나 Emacs 내에서 개발하거나 다른 환경을 원하는 경우 표준 C ++가 지원됩니다.

  • Arduino IDE는 뒤에서 작업을 수행합니다. 특히 필요할 때 .h 파일을 #include합니다. 정확하더라도 컴파일러가 볼 수있는 모든 것을 작성하거나 적어도보고 이해하려고합니다. 프로그래밍 언어는 컴퓨터를 위해 만들어진 것이 아닙니다 (컴퓨터는 아침을 먹기 위해 약간을 먹습니다). 그것들은 사람들, 특히 프로젝트에서 당신을 따르는 사람들을 위해 만들어졌습니다. 가장 중요한 사람은 ... 당신입니다!, 모듈을 작성한 후 6 개월이 지나면 모듈을 개선하기 위해 돌아와야합니다. 아마 수정하십시오. 컴파일러가 보는 모든 것을 실제로 볼 수 있기를 원합니다.


2
이것은 정말 좋은 대답입니다. C ++을 좋아하고 내가 좋아해야한다는 것이 분명합니다! ...하지만 진지하게, 나는 다른 센서들과의 "통신"이 어떻게 작동하는지 이해하자마자 C ++로 바로 뛰어들 것입니다.
Kim의 친구

당신은 주제에 관한 좋은 책을 알고 있습니까? (다른 언어로 여러 해 동안 프로그래밍을 해왔으며 C ++의 "내장 된 부분"만 있으면됩니다.)
Kim의 친구

Accelerated C ++ 가 이것에 대한 좋은 책 이라고 생각 합니까?
Kim의 친구

2
나는 '올바른'책으로 당신을 도울 수 있기를 원하지만, 나는 C 뒤에 많은 C를 가지고 C ++에 왔고 Kernighan & Ritchie의 The C Programming Language 는 여전히 명시 적으로 C ++이 아닌 것에 대한 나의 책입니다 (나쁜 말) 및 Ellis & Stroustrup의 C ++ 용 주석이 달린 C ++ 참조 매뉴얼 . 그러나 하드웨어에 쓰려면 Arduino.cc의 사용자가 제공 한 장치 라이브러리 중 일부를 살펴 보는 것이 좋습니다 . pinMode (), digitalWrite () 및 digitalRead () 함수를 사용하여 I / O 포트 조정을 시작한 다음 해당 아날로그 i / o 대응 기능을 시작하십시오.
JRobert

1
... 속도 및 메모리 공간 개선을 위해 I / O 레지스터에 직접 쓸 계획입니다. blinky.cpp 및 hello.cpp와 같은 프로그램은 하드웨어를 어지럽히 기 시작하기에 좋은 장소입니다. 간단한 멀티 미터와 올바른 전류 제한 저항이있는 몇 개의 LED를 한쪽 다리에 영구적으로 납땜하면 간단한 경우에도 실제 결과를 볼 수 있습니다. 그 후, 관심이있는 하드웨어에 대한 데이터 시트를 읽고 어떤 신호를 읽고 재생할 수 있는지 확인하십시오. 온도 센서는 사용하기 쉽고 냉장고 로거가 필요하지 않습니까? 즐기세요!
JRobert

10

내 경험에 의하면, 그것은 않도록하는 것이 가장 좋습니다 새로운삭제 제한된 메모리를 가진 컴퓨터에서 실행하는 경우.

  • 메모리 관리 자체는 소중한 프로그램과 RAM 공간을 사용합니다
  • ISR 벡터는 컴파일 tme에서 설정됩니다. 클래스 인스턴스가 런타임에 ISR을 청구하는 것은 어렵습니다 (불가능합니까?).
  • 일반적으로 컴파일시 3 개의 버튼 디 바운서, 디스플레이 드라이버 및 2 라인 디스플레이 드라이버 등 필요한 클래스 인스턴스를 알 수 있습니다.
  • 메모리 관리는 새로 작성 또는 삭제를 사용할 때 알 수없는 지연을 유발합니다.

동적 인스턴스 생성 및 소멸을 사용하는 것이 정당한 경우가있을 수 있지만 드문 경우입니다.


C ++을 완전히 처음 접했을 때 STD에 대한 후속 질문이 있습니다. 메모리를 사용하는 것이 현명한 아이디어입니까? 그렇지 않은 경우 어떻게 추가 할 수 있습니까 (Eclipse)? AVR 컴파일러와 잘 작동하도록 설정했습니다.
Kim의 친구

1
당신이 말하는 것은 모두 정확하지만 이것이 OP 질문에 대한 답변인지는 모르겠습니다. new그리고 delete너무 아두 이노 IDE에서 사용할 수 있습니다.
jfpoilpret

답변은 아니지만 정말 감사하는 유용한 정보입니다.
Kim의 친구

8

여러 답변에서 언급했듯이 일반적으로 임베디드 시스템을 프로그래밍하는 경우 자체 메모리 힙을 관리하지 않고 객체 수명주기가 무엇인지 실제로 알지 않는 한 새로운 것을 피해야 합니다. 정적 할당 또는 스택 변수가 훨씬 안전합니다. 즉, 함수 지속 시간 동안 할당 된 가변 길이 버퍼와 같은 것을 관리하는 일반적인 트릭 은 생성자에서 new 를 호출하는 객체 인 자동 변수 (스택에서)를 삭제 한 다음 소멸자에 삭제하는 것 입니다 따라서 객체가 범위를 벗어나면 버퍼가 힙으로 다시 해제됩니다. 다시 말하지만, 이것은 일반적으로 작은 마이크로에서 제한적으로 사용되지만 기억하기 좋은 패턴입니다.


6

위의 의견 외에도 Arduino 보드의 RAM 작동 문제, 특히 Uno (및 동일한 마이크로 컨트롤러를 공유하는 다른 것들)의 RAM 문제에 대해 더 강조하고 싶습니다. 최근에 32x32 LED 매트릭스에서 실행되는 간단한 Space Invaders 게임을 작성했으며 메모리 부족으로 인해 반복적으로 문제가 발생했습니다.

Uno에는 2048 바이트의 RAM 만 있습니다. 내 매트릭스의 라이브러리는 그중 3/4 이상을 차지하여 게임을 위해 약 400 바이트를 남겨 둡니다. 더 강력한 Due를 기반으로 동일한 프로그램 기반으로 여러 게임을 실행하는 프로젝트를 어느 시점에서 "업그레이드"하려는 의도 때문에 OO 교장과 많은 클래스 상속으로 코드를 디자인했습니다. (게임 클래스는 가상 업데이트 및 드로우 콜로 상속되었으며, 게임 엔티티는 모두 상속되었습니다.)

침입자를 추가하는 것만으로도 메모리가 부족합니다. 멤버 변수를 비트 필드로 작성하여 메모리를 절약하려고했지만 방패 객체를 추가 할 때 다시 부족했습니다. 조금 더 긁은 후에 나는 폭탄 / 총알을 추가하는 데 부족했습니다. 이 시점에서 코드를 검색하고 모든 "가상"태그를 제거했습니다 (모든 클래스 프로토 타입은 Visual Assist 코드 조각에서 작성되고 소멸자는 모두 자동으로 가상 임). 이로 인해 메모리 사용이 즉시 절반으로 줄어들어 코드를 완성 할 수있을만큼 여유가 생겼습니다.

간단히 말해, 최종 결과는 실제로 C ++ 기능을 사용하지 않는 C ++ 코드입니다. C를 고수하고 메모리 사용량을 잘 알고있을 수도 있습니다. 2KB를 초과하면 도움이되지 않습니다. 특히 동적 할당을 사용하는 경우 코드가 작동을 멈추고 메모리 오버플로 가능성을 고려할 때까지 잠시 동안 머리를 긁적입니다.

PS-비트 필드 변수가 잘못되었습니다. 아주 나쁜. 처리 오버 헤드를 추가하는 것 외에도 게임에 새로운 상태를 추가하는 횟수를 잃었지만 코드가 실행되지 않아 이유를 이해할 수 없었습니다. 내 상태 변수가 새로운 상태 값을 보유 할만 큼 넓지 않아 예기치 않은 상태가 발생했습니다.


4

Arduino 언어 C ++입니다 (일반적으로 임베디드 시스템 마이크로 컨트롤러 세계에서는 일반적으로 "클래스가있는 C"와 같은 스타일로 구현 됨). 이야기의 끝. 사람들이 이미 다른 언어라고 생각하면 충분합니다! g ++ 컴파일러를 사용합니다.

증명:

환경 설정에서 컴파일하는 동안 자세한 출력을 활성화하고 업로드하면 해당 행을 읽는 방법을 많이 배울 수 있습니다.

추가 통찰력은 다음과 같습니다.

내 자신의 말 :

Arduino 코드 C ++입니다. Arduino 핵심 기능 은 단순히 사용할 수있는 C ++ 클래스 및 라이브러리 세트입니다. GNU gcc / g ++ 컴파일러를 사용하여 빌드 및 컴파일됩니다 . setup () 및 loop () 함수는 자동으로 필수 main () 함수에 배치됩니다 ( 여기서는 실제로 는 파일이 C ++ 소스 파일 인 "main.cpp"임). 사전 처리가 유효한 C ++ 프로그램인지 확인하기 위해 수행됩니다 (예 : 나중에 모든 함수 프로토 타입 [일명 : 선언]을 스캔하여 프로토 타입이 나중에 .ino 파일에 있더라도 함수를 사용할 수 있음). 그러나 대부분의 Arduino는 "C 스타일"로 작성되므로 # extern "C" {}C ++을 막기 위해 주위 에 중괄호 가 필요합니다."name-mangling" ( "name decorating / name decoration" 이라고도 함 ) 함수 는 ATVR328 및 기타 AVR 아키텍처 마이크로 컨트롤러 의 C 구현 인 AVR-libc에 의해 구현 된 C 함수를 호출합니다 .

아두 이노의 말 :

" C로 Arduino 보드를 프로그래밍 할 수 있습니까?
실제로, 이미 있습니다. Arduino 언어는 코드에서 호출 할 수있는 C / C ++ 함수의 집합 일뿐입니다. 스케치에서 약간의 변경 (예 : 자동으로 함수 프로토 타입 생성) 그런 다음 C / C ++ 컴파일러 (avr-g ++)로 직접 전달됩니다. avr-g ++에서 지원하는 모든 표준 C 및 C ++ 구성 은 Arduino에서 작동해야합니다. 자세한 내용은 Arduino 빌드 프로세스 페이지를 참조하십시오 . "

출처 : https://www.arduino.cc/en/Main/FAQ#toc13

Arduino 라이브러리 와 순수 C 또는 C ++를 언제 사용해야 합니까?

따라서 Arduino 언어를 사용하면 작업을 단순화하고 전문화가 더 필요한 곳에 자체 기능을 작성하십시오. 코드 작성을 위해 IDE에서 빨리 벗어나는 것이 좋습니다. 컴파일에 사용하십시오. "외부 편집기"를 사용하도록 IDE 환경 설정을 설정하십시오. 그런 다음 Sublime Text 3 , Atom , Visual Studio Code 또는 Eclipse CDT 와 같은 전문 소스 코드 편집기 / IDE 를 사용하여 코드를 작성하십시오. 그런 다음 Arduino IDE를 다시 클릭하여 컴파일하고 업로드 할 수 있습니다. Eclipse를 사용하는 경우 Eclipse에서이를 수행 할 수있는 방법이 있습니다 (여기의 다른 답변 참조 및 Arduino 플레이 그라운드 Eclipse 기사 참조 ). 이러한 기술도 사용하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.