cnt 관련 유용한 라이브러리함수 또는 메크로를 찾습니다. | 자유 게시판
  2018.01.02. 21:10
 

예를들어 10번중에 한번씩 불러오는 함수가 있다라고 했을시 제가 쓰는 방법은

 

 

void Funtion()

{

  static u8 Cnt=0;

  Cnt++;

  if(Cnt > 10)

  {

      Cnt=0;

      TestFun();

  }

}

 

int main

{

    Funtion();

}

이렇게 하면 TestFun();을 열번에 한번씩 불러올수가 있잖아요?

 

그런데 코딩하면서 이런 방식을 굉장히 많이 사용하는것을 느꼈습니다.

하나의 메크로를 정의 하여서 위의 방식이 있을때 마다 그메크로를 사용하면 참좋을것같은데

참 좋을것 같은데(아직 코딩실력이 한참모자라서 ㅎㅎ;;;;) 혹시 알고계신분 계신가요? 

 
댓글 6 | | 조회수 101 |  
  • 2018.01.03. 00:18답글

    신고

     

    이런 함수나 펑션은 있을때마다 만들면 되고 그것보다 표준 라이브러리와 업무에 자주 쓰는 부분을 함수나 펑션 구조체로 선언해 쓰는 공용라이브러리를 정리해두시는게 업무에 도움됩니다

     
  •  
  •  
  • 2018.01.03. 00:21답글

    신고

    그냥 질문하신대로 사용하면 되지... 굳이 뭐 매크로같은 어떤 수단으로 정형화할 필요가 있을까요? 저는 이런 프로그래밍 기법을 소프트웨어 카운터라고 합니다.

    그리고, 질문 내용에서 10번에 한번씩 실행하려면 if(Cnt >= 10)으로 처리해야 합니다. 질문하신 것처럼 if(Cnt > 10)으로 하면 11번에 한번씩 실행됩니다.

     
  •  
     
  •  
  •  
  • static이 들어가 있으니 저 구조 그대로는 어차피 힘들고.. 함수명과 카운트 숫자, 실행할 함수 포인터 정도를 받는 매크로를 만들면 되겠지만 가급적 학습용으로 한번 해보는 수준 정도로 만족하시는것을 추천드립니다. 매크로 만능주의는 나중에는 매크로가 실제 코드보다 많아지거나 매크로 구현을 위한 매크로등 유지 보수 확장 가독성 모두 만족 못하는 자기만족 코드가 되기 쉽습니다.

     
  •  
     
  • [출처] cnt 관련 유용한 라이브러리함수 또는 메크로를 찾습니다. (당근이의 AVR 갖구 놀기) |작성자 eogh

 

Posted by 풀등
,