기초 특강) C언어 완전 정복하기 6탄 - 매크로, inline 100% 활용

2018-01-26 10:30~11:26

전기전자 평생교육원 / 정재준 대표

  • 김*철2018-04-09 오후 4:25:43

    3번 추가
  • e4ds2018.04.09

    3번 답변
  • 김*철2018-04-09 오후 4:20:29

    또하나 추가요
  • e4ds2018.04.09

    또 답변드려요
  • 김*철2018-04-09 오후 4:13:44

    추가질문테스트
  • e4ds2018.04.09

    답변 드립니다.
  • 여*민2018-01-26 오전 11:23:47

    가끔 inline이라고 선언을 해줘도 인라인화?? 되지 않는 경우가 있는것 같은데요.. 혹시 컴파일러가 뭔가의 기준을 가지고 선택하는 과정이 있나요?
  • kernel2018.01.26

    네, 컴파일 옵션중에서 최적화 옵션이 있습니다. -O 옵션인데,, 이 옵션의 레벨에 따라서 컴파일러 내부적으로 판단해서 처리합니다.
  • 여*민2018-01-26 오전 11:15:51

    매크로 함수를 사용하면 컴파일러에서 버그를 못찾을 가능성이 있지 않나요?
  • kernel2018.01.26

    네, 프로그램 디버깅이 좀 까다로울수 있습니다. 하지만, 컴파일러가 매크로를 모두 치환한 소스를 가지고 디버깅 하는 방법도 있는데, 컴파일러 옵션을 참고하시면 되는데, 저도 자주 사용 안해봐서 지금 자세한 설명은 힘들듯 합니다. 컴파일 옵션을 참조해야 할듯 합니다.
  • 김*주2018-01-26 오전 11:09:07

    C언어 기초 강의 같은 하드웨어 분야도 기초 강의를 많이 해주셨으면 좋겠습니다. 항상 유익한 강의 감사합니다!^^
  • kernel2018.01.26

    네~ 하드웨어 분야도 앞으로 준비해 보도록 할게요~ 감사합니다(^^)
  • 이*성2018-01-26 오전 11:08:27

    매크로를 사용하면 전역변수 처럼 메모리 먹지 않는건가요??
  • kernel2018.01.26

    매크로는 코드가 컴파일러에 의해서 치환(복사) 되기 때문에.. 프로그램 코드 영역의 메모리는 더 크지게 됩니다. 즉, 프로그램 코드는 더 크진다는 단점이 있습니다. 하지만, 자주 사용하는 코드는 매크로로 만들면 코드의 유지보수성이 좋아지는 장점이 있습니다.
  • 지*호2018-01-26 오전 11:08:05

    좋은 강의 감사합니다~ ^^
  • kernel2018.01.26

    네~ 즐거운 하루 되세요~
  • 김*주2018-01-26 오전 11:07:59

    연산의 우선순위를 다시한번 리뷰하는 시간이 되어서 좋네요^^
  • kernel2018.01.26

    네~ 연산자 우선순위도 중요한데.. 특히 sqaure 매크로 같이 사용할때 주의해야 할듯 합니다.
  • 지*호2018-01-26 오전 11:03:09

    [질문]C언어 매크로는 함수 포함 모든 것을 치환하고 inline함수는 함수 자체로 활용 시 프로그램 특정 상황에서 어떤 것을 사용하면 더 좋은지 궁금합니다.
  • kernel2018.01.26

    인라인 함수는 함수안의 코드는 작은데 프로그램안에서 자주 호출되는 함수에 사용하면 가장 좋습니다. 예를들어 string_compare() 함수를 자주 사용(호출)한다면 인라인 함수로 만들어서, 컴파일러가 코드를 치환(복사)하여 호출되지 않고 그냥 실행되도록 해주면 호출에 의한 속도 지연이 없어집니다.