void 루프 다음에 다른 “ void ” 식

I 이것이 Arduino 및 프로그래밍에 대한 초보자의 간단한 요청이기를 바랍니다. 프로그램이 void 루프 섹션에 들어가면 무한 루프가 반복된다는 것을 이해했습니다. 그러나 최근에 또 다른 void $$$$$ 섹션이 void 루프의 클로저 (by})를 따르는 스케치의 예를 보았습니다. 이 글을 쓸 때, “void Num_Write (int)”가 void 루프의 종료를 따르는 7 세그먼트 디스플레이에 관한 한 예를보고 있습니다. “루프”섹션이 그렇게한다면, 제가 믿었던 것처럼 다음 섹션은 어떻게 액세스됩니까?

감사합니다, 롭

댓글

답변

void loop() 섹션은 함수이고 void setup()가 함수 인 것과 같습니다. Arduino 프로그램을 시작할 때 IDE에서 볼 수없는 다른 기능을 시작할 때 setup()를 호출 한 다음 loop()를 반복해서 호출합니다.

여러분이 본 다른 함수, 즉 void Num_Write(int n)setup() 또는 명령을 실행하고이를 호출 한 함수로 돌아 가기 전에 명령을 실행합니다. 또한 Num_Write()는 컨트롤러를 호출 한 함수로 반환하기 전에 다른 함수를 호출 할 수 있습니다.

void 유형은 아무것도 나타내지 않는 데 사용됩니다 (실제로 그보다 더 복잡하지만이 수준의 설명에서는 아무 일도하지 않음). 예를 들어 다른 유형 int, char, bool를 반환합니다. 따라서 함수가 있다면 다음과 같이 :

int theMeaningOfLife(void) { return 42; } 

int ( umber) 따라서 다음과 같이 호출 할 수 있습니다.

void setup() { int number = theMeaningOfLife(); } 

하나의 캐치가 있습니다. 함수는 사용하기 전에 선언해야합니다. 이렇게하면 컴파일러가 당신이 무엇을 말하는지 아십시오. 이를 수행하는 가장 간단한 방법은 해당 함수를 호출하는 함수 위에 함수를 작성하는 것입니다. 두 번째 방법은이를 사용하는 함수 위에 함수의 서명을 작성하는 것입니다. 예 :

int theMeaningOfLife(void); void setup() { int number = theMeaningOfLife(); } 

가장 좋은 방법 (하지만 Arduino에서 항상 실용적인 것은 아닙니다. )는 헤더 파일 (.h)에 모든 함수 선언을 포함하고 .cpp 파일에 코드를 포함하는 것입니다. (내 말이 무슨 뜻인지 라이브러리를 살펴보십시오).

요약

반복적으로 호출되는 함수는 하나만 있으며 loop 함수입니다. 함수가 void를 반환한다고해서 “반복적으로 반복되는 것은 아닙니다.

코멘트

  • 당신은 다음과 같이 썼습니다.” 함수는 사용하기 전에 선언해야합니다 ”. 실제로 Arduino IDE는이를 수행하는 전처리 단계를 통해 코드를 실행합니다. 즉, 직접 수행 할 필요가 필요하지 않습니다 . IDE 외부에서 코드를 컴파일 할 수 있기 때문에이 규칙을 고수하는 것이 좋습니다. Makefile 을 사용합니다.
  • @EdgarBonet-감사합니다. 그래도 잊어야한다고 생각합니다. 그렇지 않으면 ' 직장에서 시도하기 시작하고 결국 [그게] 승리 한 이유를 알아 내려고 머리를 뽑아 내게됩니다. ' 컴파일하지 마십시오. 🙂

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다