IT용어사전

레거시

[ Legacy ]

과거에 개발되어 현재에도 사용 중인 낡은 하드웨어나 소프트웨어. 새로 제안되는 방식이나 기술을 부각시키는 의미로서 주로 사용된다. 예를 들면 시스템이 구축되지 않은 상태에서 새로운 시스템을 구축하면 구축되지 않은 상태가 레거시가 된다. 레거시 프로그램들은 특정 용도나 환경 아래에서만 작동하게 되어 있으나, 최신 프로그램들은 대부분 개방형으로 개발된다.

[네이버 지식백과] 레거시 [Legacy] (IT용어사전, 한국정보통신기술협회)


  1. 1.
    • [동사](실질적인 증거는 없지만 사실일 것이라고) 추정하다[여기다/생각하다]
    • They are very expensive, I presume?(추정컨대) 그것들은 아주 비싸겠죠?
    • Is he still abroad?' ‘I presume so.'“그가 아직 해외에 있나요?” “아마 그럴 걸요.”
  2. 2.
    • [동사](특히 법정에서 반대되는 증거가 나올 때까지는 무엇을 사실로) 간주하다
    • Twelve passengers are missingpresumed dead.12명의 승객이 실종인데 사망한 것으로 간주된다.
    • In English lawa person is presumed innocent until proved guilty.영국 법에서는 유죄가 입증될 때까지는 무죄로 간주된다.
  3. 3.
    • [동사][타동사][VN](격식) (무엇을 사실로 보고 그것을 기반으로) 상정하다
    • The course seems to presume some previous knowledge of the subject.이 강좌는 그 주제에 대한 (수강자들의) 어느 정도의 사전 지식을 상정하고 있는 것 같다.
  4. 4.
    • [동사][V to inf](격식) 주제넘게 굴다
    • I wouldn't presume to tell you how to run your own business.제가 주제넘게 당신 자신의 사업체를 어떻게 운영해야 한다고 말씀드리지는 않겠습니다.

저장 : 2014.06.30

  1. 1.
    • [형용사]~ (to sth) (더 중요한 행동・행사에 대한) 예비의
    • After a few preliminary remarks he announced the winners.몇 차례 예비 발언이 있은 후 그가 당첨자들을 발표했다.
    • preliminary results / findings / enquiries예비 결과/조사 결과/조사
  2. 2.
    • [명사](pl. -ies) ~ (to sth) 예비 행위[단계]; (말의) 서두; 예선전
    • Research will be needed as a preliminary to taking a decision.결정을 내리기 위한 예비 단계로 연구 조사가 필요할 것이다.
    • I'll skip the usual preliminaries and come straight to the point.통상적인 서두는 생략하고 바로 본론으로 들어가겠습니다.

저장 : 2014.06.27

  1. 1.
    • [부사][문어] 아래 (문장)에; 이 기록[조건]에 따라, 이에 의거하여

저장 : 2014.06.27

  1. 1.
    • [형용사]법률・규칙・규정 등이 엄중한
    • stringent air quality regulations엄중한 대기의 질 관련 규정
  2. 2.
    • [형용사]재정적 조건이 긴박한, 절박한
    • the government's stringent economic policies정부의 긴박한 경제 정책

저장 : 2014.06.27

  1. 1.
    • [형용사](격식) 편재하는, 어디에나 있는
    • These days the media are omnipresent.요즘에는 미디어가 어디에나 있다.

저장 : 2014.06.27

  1. 1.
    • [동사][타동사][VN] 밑줄을 긋다[치다]
  2. 2.
    • [동사]강조하다, 분명히 보여주다
    • The report underlines the importance of pre-school education.그 보고서는 취학 전 교육의 중요성을 강조하고 있다.
    • Her question underlined how little she understood him.그녀의 질문은 그에 대한 그녀의 이해가 얼마나 낮은지를 분명히 보여주었다.

저장 : 2014.06.27

  1. 1.
    • [명사]UC 전개, 배치

저장 : 2014.06.27

[동의어] logarithm
  1. 1.
    • [명사]통나무
    • logs for the fire장작으로 쓸 통나무들
  2. 2.
    • [명사](logbook) (특히 항해・운항・비행 등의) 일지[기록]
    • The captain keeps a log.선장[기장]이 일지를 작성한다.
  3. 3.
    • [명사](비격식)
  4. 4.
    • [동사]일지에 기록하다
    • The police log all phone calls.경찰이 모든 통화는 일지에 기록을 한다.
  5. 5.
    • [동사](특정 거리・시간을) 항해[운항/비행]하다
    • The pilot has logged 1000 hours in the air.그 조종사는 하늘을 1 000시간 비행했다.

저장 : 2014.06.27

  1. 1.
    • [동사](특히 英) (어디를 가서) 가지고[데리고/불러] 오다
    • to fetch help / a doctor도와줄 사람/의사를 데리고 오다
    • The inhabitants have to walk a mile to fetch water.주민들은 물을 길어 오기 위해 1마일을 걸어가야 한다.
  2. 2.
    • [동사][타동사][VN] (특정 가격에) 팔리다
    • The painting is expected to fetch $10000 at auction.그 그림은 경매에서 1만 달러에 팔릴 것으로 예상된다.

저장 : 2014.06.24

  1. 1.
    • ~해야 할 어떤 이유도 없다

저장 : 2014.06.16

  1. 1.
    • for the first timeonly when[afterthen]not...untilat lastat length
    • People do not know the blessing[valueof health until they lose it.사람들은 건강을 잃고 나서 그제야 그 고마움을 안다
    • Then I realized for the first time how horrible a fire was.나는 그제야 화재의 무서움을 알았다

저장 : 2014.06.16

  1. 1.
    • (비교적 격식) …해야만(어떤 일이 가능한 유일한 상황을 진술할 때 씀)
    • Only if a teacher has given permission is a student allowed to leave the room.학생은 교사의 허락이 있어야만 교실을 떠날 수 있다.
    • Only if the red light comes on is there any danger to employees.빨간 불이 들어와 있을 때에만 직원들에게 무슨 위험이 있는 것이다.

저장 : 2014.06.16

  1. 1.
    • [동사]CAUSE SB/STH TO BE STH |[타동사][VN-ADJ](격식) (어떤 상태가 되게) 만들다[하다]
    • to render sth harmless / useless / ineffective…을 무해하게/소용없게/무효로 만들다
    • Hundreds of people were rendered homeless by the earthquake.수백 명의 사람들이 그 지진으로 집을 잃게 되었다.
  2. 2.
    • [동사]GIVE HELP | ~ sth (to sb/sth) | ~ (sb) sth(격식) (특히 어떤 것에 대한 대가로 또는 기대에 따라) 주다[제공하다]
    • to render a service to sb…에게 서비스를 베풀다
    • to render sb a service…에게 서비스를 베풀다
  3. 3.
    • [동사]PRESENT STH |[타동사][VN](격식) (특히 공식적으로) 제시[제출]하다
    • The committee was asked to render a report on the housing situation.그 위원회는 주택 상황에 대한 보고서를 제출하라는 요구를 받았다.
  4. 4.
    • [동사]EXPRESS/PERFORM |[타동사][VN](격식) 표현하다, 연기[연주]하다
    • He stood up and rendered a beautiful version of ‘Summertime'.그는 일어서서 ‘서머타임'을 아름답게 연주했다.
    • The artist has rendered the stormy sea in dark greens and browns.그 화가는 폭풍우 치는 바다를 진녹색과 갈색으로 표현해 놓고 있다.
  5. 5.
    • [동사]TRANSLATE |[타동사][VN] ~ sth (as sth) | ~ sth (into sth) (다른 언어로) 옮기다, 번역하다
    • The Italian phrase can be rendered as ‘I did my best'.그 이탈리아어 관용구는 ‘난 최선을 다했다.'로 번역할 수 있다.
    • It's a concept that is difficult to render into English.그것은 영어로 옮기기 힘든 개념이다.

저장 : 2014.06.14

  1. 1.
    • [형용사]국가・지역・기관이 자주적인, 자치의
    • an autonomous republic/state/province자주 공화국/자주 국가/자치 주/자치 지역
  2. 2.
    • [형용사]사람이 자율[자주]적인

저장 : 2014.06.12

  1. 1.
    • [형용사][명사 앞에만 씀] (두 사건・날짜・사물 등의) 사이에 오는[있는]
    • Little had changed in the intervening years.그 사이의 세월 동안 변한 것이 거의 없었다.

저장 : 2014.05.29

  1. 1.
    • [동사][보통 진행형으로는 쓰이지 않음](격식) (…로) 여기다[생각하다]
    • The evening was deemed a great success.그날 저녁(공연/행사)은 대대적인 성공으로 여겨졌다.
    • She deemed it prudent not to say anything.그녀는 아무 말도 하지 않는 것이 신중한 처사라고 생각했다.

저장 : 2014.05.06

  1. 1.
    • [동사]~ sth | ~ sb from doing sth(격식) (~로 하여금 ~하지) 못하게 하다, (~가 ~하는 것을) 불가능하게 하다
    • Lack of time precludes any further discussion.시간이 부족해서 더 이상 논의하는 것이 불가능하다.
    • His religious beliefs precluded him / his serving in the army.그는 종교적인 신념 때문에 군 복무를 할 수 없었다.

저장 : 2014.05.03

  1. 1.
    • [명사]C ~ (between A and B) | ~ (with sth) 비유; 유사점
    • The teacher drew an analogy between the human heart and a pump.선생님은 인간의 심장을 펌프에 비유했다.
    • There are no analogies with any previous legal cases.이전에 있은 어떤 법률 소송과도 유사점이 없다.
  2. 2.
    • [명사]U 유추
    • learning by analogy유추를 통해 배우는

저장 : 2014.03.25

  1. 1.
    • [형용사]~ (with/to sth)(격식 또는 전문 용어) 인접한, 근접한
    • The countries are contiguous.그 국가들은 인접해 있다.
    • The bruising was not contiguous to the wound.타박상은 상처에 근접해 있지 않았다.

저장 : 2014.03.04

  1. 1.
    • [동사][자동사][V + adv. / prep.] 비롯되다, 유래하다
    • The disease is thought to have originated in the tropics.그 병은 열대 지방에서 비롯된 것으로 여겨지고 있다.
  2. 2.
    • [동사][타동사][VN] 발명[고안]하다
    • Locke originated this theory in the 17th century.로크가 이 이론을 17세기에 창안했다.

저장 : 2014.03.04

  1. 1.
    • [형용사](컴퓨터) 메모리 속에서의 데이터 순서를 정하는 시스템에 관련된.

저장 : 2014.03.04

  1. 1.
    • [명사](pl. -ies)(격식) 독립체
    • The unit has become part of a larger department and no longer exists as a separate entity.그 부서는 다른 큰 부서의 일부가 되었고 더 이상 별개의 독립체로 존재하지 않는다.
    • These countries can no longer be viewed as a single entity.이들 국가들은 더 이상 단일 독립체로 볼 수 없다.

저장 : 2014.03.04

  1. 1.
    • [형용사]~ (in sth)(문예체 호감) (태도・목표가) 변함없는
    • He remained steadfast in his determination to bring the killers to justice.그는 그 살인자들에게 법의 심판을 받게 할 거라는 각오를 변함없이 지니고 있었다.
    • steadfast loyalty변함없는 충성심

저장 : 2014.03.04

  1. 1.
    • [명사](작은) 정보[소식]
    • Have you got any interesting snippets for me?내게 들려 줄 뭐 재미있는 소식 없어?
    • a snippet of information작은 정보 하나
  2. 2.
    • [명사](대화・음악 등의) 한 토막

저장 : 2014.03.03

  1. 1.
    • [형용사][주로 명사 앞에 씀] 인식[인지]의
    • a child's cognitive development아동의 인지 발달
    • cognitive psychology인지 심리학

저장 : 2014.02.27

  1. 1.
    • [명사]U , C(격식) 유사성; 유사점
    • think he exaggerates the parallelism between the two cases.내 생각에는 그가 그 두 사건 사이의 유사성을 과장하는 것 같다.

저장 : 2014.02.19

  1. 1.
    • [형용사]체계적인, 조직적인
    • a systematic approach to solving the problem그 문제를 해결하는 체계적인 접근법
    • a systematic attempt to destroy the organization그 조직을 파괴하기 위한 체계적인 시도

저장 : 2014.02.19

  1. 1.
    • [동사][타동사][VN] ~ sth (on/upon sb/sth) (강력한 반응・감정 등을) 촉발시키다[불러일으키다]
    • The government's proposals unleashed a storm of protest in the press.정부의 그 제안들은 언론의 거센 항의를 불러일으켰다.

저장 : 2014.02.19

  1. 1.
    • [명사]U ~ (with sth) (법・명령 등의) 준수; (명령 등에) 따름
    • procedures that must be followed to ensure full compliance with the law완전한 법률 준수를 보장하기 위해 반드시 지켜야 할 절차들
    • Safety measures were carried out in compliance with paragraph 6 of the building regulations.안전 조치는 건축 규정 6절에 따라 시행되었다.

저장 : 2014.02.18

  1. 1.
    • [동사][타동사][VN] (rati・fies , rati・fy・ing , rati・fied , rati・fied) 비준[재가]하다
    • The treaty was ratified by all the member states.그 조약은 모든 회원국들의 비준을 받았다.

저장 : 2014.02.18

  1. 1.
    • [형용사][명사 앞에만 씀](격식) (앞에 언급한) 그 결과로 생긴[그에 따른]
    • the growing economic crisis and resultant unemployment커져 가는 경제 위기와 그에 따른 실업 문제

저장 : 2014.02.17

  1. 1.
    • [형용사]~ (that…) | ~ (to do sth) | ~ (of sth/of doing sth) 확실한, 틀림없는
    • It is certain that they will agree / They are certain to agree.그들이 틀림없이 동의할 것이다.
    • She looks certain to win an Oscar.그녀가 오스카상을 탈 것이 확실해 보인다.
  2. 2.
    • [형용사]~ (that…) | ~ (of/about sth) 확신하는
    • She wasn't certain (that) he had seen her.그녀는 그가 자기를 보았는지 확신이 서지 않았다.
    • Are you absolutely certain about this?이것에 대해 절대적으로 확신하세요?
  3. 3.
    • [형용사]어떤, 무슨(구체적인 정보 없이 사람・사물 등을 언급할 때 씀)
    • For certain personal reasons I shall not be able to attend.무슨 개인적인 이유가 있어서 제가 참석할 수 없을 거예요.
    • Certain people might disagree with this.어떤 사람들은 이것에 동의하지 않을 것이다.
  4. 4.
    • [형용사](격식) (사람 이름과 함께 쓰여) …라는
    • It was a certain Dr Davis who performed the operation.그 수술을 집도한 분은 데이비스 박사란 분이었다.
  5. 5.
    • [형용사]어느 정도의, 약간의
    • That's trueto a certain extent.그것이 어느 정도는 사실이다.
    • felt there was a certain coldness in her manner.그녀의 태도에서 약간 냉정함이 느껴졌다.

저장 : 2014.02.17

  1. 1.
    • [부사](격식) 그렇게 함으로써, 그것 때문에
    • Regular exercise strengthens the heartthereby reducing the risk of heart attack.규칙적인 운동은 심장을 튼튼하게 해 주고, 그렇게 함으로써 심장병의 위험을 줄여 준다.

저장 : 2014.02.17

  1. 1.
    • 경험하는

저장 : 2014.02.14

  1. 1.
    • [명사](법률의) 시행, 집행
  2. 2.
    • [명사](복종 등의) 강제
  3. 3.
    • [명사](의견 등의) 강조

저장 : 2014.02.14

  1. 1.
    • [형용사]콘크리트로 된
    • a concrete floor콘크리트 바닥
  2. 2.
    • [형용사]사실에 의거한, 구체적인
    • concrete evidence/proposals/proof구체적인 증거/제안/입증
    • It's only a suspicion,' she said, ‘nothing concrete.'“그건 혐의일 뿐이라구요, 사실에 근거를 둔 것이 아니라.” 그녀가 말했다.
  3. 3.
    • [형용사]실체가 있는
  4. 4.
    • [명사]U 콘크리트
    • a slab of concrete콘크리트 판 하나
  5. 5.
    • [동사][타동사][VN] ~ sth (over) 콘크리트를 바르다
    • The garden had been concreted over.정원에는 콘크리트가 다 발라져 있었다.

저장 : 2014.02.14

  1. 1.
    • [형용사][A] 후방의, 후부의, 뒤의
    • the hinder part of the ship배의 뒤쪽
    • the hinder gate뒷문
  2. 2.
    • [명사][pl.] (사람의) 다리(legs)

저장 : 2014.02.14

  1. 1.
    • [형용사]즉각적인
    • an instantaneous response즉각적인 반응
    • Death was almost instantaneous.거의 즉사했다.

저장 : 2014.02.14

  1. 1.
    • [명사]전임자
    • The new president reversed many of the policies of his predecessor.새 대통령은 전임 대통령의 정책들 중 많은 것들을 뒤집었다.
  2. 2.
    • [명사]이전 것[모델]

저장 : 2014.02.14

  1. 1.
    • [형용사]포괄적인, 총칭[통칭]의
    • Vine fruitis the generic term for currants and raisins.‘덩굴 열매'는 currants (작은 씨 없는 포도를 말린 건포도)와 raisins (조금만 말린 건포도)를 총칭한다.
  2. 2.
    • [형용사]상품, 특히 약품이 회사 이름이 붙지 않은, 일반 명칭으로 판매되는
    • The doctor offered me a choice of a branded or a generic drug.의사가 내게 상표명이 붙은 약이나 일반 약품 중에서 하나를 선택하라고 했다.

저장 : 2014.02.14

  1. 1.
    • [형용사](통계) 추계학(推計學)의, 확률(론)적인

저장 : 2014.02.14

  1. 1.
    • [형용사]유망한, 촉망되는; 조짐이 좋은
    • He was voted the most promising new actor for his part in the movie.그는 그 영화에서 한 역할로 가장 촉망되는 신인 배우에 선정되었다.
    • The weather doesn't look very promising.날씨가 그렇게 조짐이 좋아 보이지 않는다.

저장 : 2014.02.14

  1. 1.
    • [형용사]간단한, 쉬운, 복잡하지 않은
    • a straightforward process간단한 절차
    • It's quite straightforward to get here.여기 오기는 아주 쉬워.
  2. 2.
    • [형용사]사람・행동이 솔직한

저장 : 2014.02.14

  1. 1.
    • ~로 구성된

저장 : 2014.02.14

  1. 1.
    • [형용사]조정(調整)[조율]할 수 있는
  2. 2.
    • [형용사](고어) 가락이 맞는, 조화된, 음악적인

저장 : 2014.02.14

  1. 1.
    • [동사](못마땅함) (부당하게) 이용하다
    • He exploited his father's name to get himself a job.그는 취직을 하기 위해 아버지의 이름을 이용했다.
    • She realized that her youth and inexperience were being exploited.그녀는 자신의 젊음과 경험 미숙이 이용당하고 있음을 깨달았다.
  2. 2.
    • [동사](못마땅함) 착취하다
    • What is being done to stop employers from exploiting young people?고용주들이 젊은이[청소년]들을 착취하는 것을 막기 위해 어떤 일들이 이뤄지고 있나요?
  3. 3.
    • [동사](최대한 잘) 활용하다
    • She fully exploits the humour of her role in the play.그녀는 그 연극에서 자신의 역할이 지닌 유머를 충분히 활용하고 있다.
  4. 4.
    • [동사]~ sth (for sth) (사업・산업용으로) 개발하다
    • countries exploiting the rainforests for hardwood단단한 재목을 얻으려고 열대 우림을 개발하는 국가들
    • No minerals have yet been exploited in Antarctica.남극 대륙에서는 아직까지 어떤 광물질도 개발된 적이 없다.
  5. 5.
    • [명사][주로 복수로] 위업, 공적
    • the daring exploits of Roman heroes로마 영웅들의 대담한 위업

저장 : 2014.02.14

  1. 1.
    • [명사](다른 장소나 상황에서 어떤 사람・사물과 동일한 지위나 기능을 갖는) 상대, 대응 관계에 있는 사람[것]
    • The Foreign Minister held talks with his Chinese counterpart.외무 장관이 중국 외무 장관과 몇 차례 회담을 가졌다.
    • The women's shoelike its male counterpartis specifically designed for the serious tennis player.여성화는 남성화와 마찬가지로 테니스를 본격적으로 하는 선수를 위해 특수하게 제작된다.

저장 : 2014.02.13

  1. 1.
    • [형용사]확인된, 인정된, 식별된

저장 : 2014.02.12

  1. 1.
    • [형용사][명사 앞에는 안 씀] ~ (to do sth) (~을) 하고 싶은, (마음이) 내키는
    • She was inclined to trust him.그녀는 그를 믿고 싶었다.
    • He writes only when he feels inclined to.그는 마음이 내킬 때에만 글을 쓴다.
  2. 2.
    • [형용사]~ to do sth ~하는 경향이 있는; ~할 것 같은
    • He's inclined to be lazy.그는 게으른 경향이 있다.
    • They'll be more inclined to listen if you don't shout.당신이 고함을 지르지 않으면 그들이 더 귀를 기울일 것 같다.
  3. 3.
    • [형용사]to agreebelievethinketc. 동의하고, 믿고, 생각하고 싶다 등(자신의 의견을 완곡하게 표현할 때 씀)
    • I'm inclined to agree with you.전 당신의 생각에 동의하고 싶군요.
  4. 4.
    • [형용사][특정한 부사들과 함께 쓰여] …에 소질이 있는; …을 선호하는
    • musically/academically inclined children음악/공부에 소질이 있는 아동들
  5. 5.
    • [형용사]경사진, 기운

저장 : 2014.02.12

  1. 1.
    • [동사](감정・생각을) 넌지시 나타내다[비치다], 은연중에 풍기다
    • Are you implying (that) I am wrong?지금 제가 틀렸다는 뜻인가요?
    • disliked the implied criticism in his voice.나는 그의 목소리에서 은연중에 풍기는 비난이 싫었다.
  2. 2.
    • [동사]암시[시사]하다
    • The survey implies (that) more people are moving house than was thought.그 실태조사는 생각했던 것보다 더 많은 사람들이 집을 옮기고 있음을 시사한다.
    • The fact that she was here implies a degree of interest.그녀가 여기 왔었다는 사실은 어느 정도 관심이 있음을 암시한다.
  3. 3.
    • [동사][타동사][VN] 생각・행동 등이 성공하려면 무엇이 필요함을 의미하다
    • The project implies an enormous investment in training.그 프로젝트는 교육에 엄청난 투자가 있어야 함을 의미한다.





802.15.4를 이해하기위해서 반드시 이해를 해야하는 프리미티브 개념이다.


802.2-1998 표준문서를 참조하면 좀더 자세히 알수가 있다.


보통 통신프로토콜은 계층화되어 하위나 상위계층에서 어떤 정보의 흐름을 만들거나 전달하기위해서는 서비스함수를 거치게 된다. 특히, 오늘 이야기하려는 지그비의 경우 서비스함수(프리미티브)를 Request, Confirm, Indication, Response 4가지를 가진다.


이들 4가지 서비스는 프로토콜 계층화의 설명에 딱 어울리는 형태로 하위에서 상위로, 상위에서 하위로 일련의 동작을 하도록 명령을 하거나 지시받는 서비스로 아래의 그림에 나타나 있다. (수식으로 넣어서 엉망이다..)




어쨌든 위의 그림을 통해서 우리는 Request, Confirm은 하위에서 - 상위 레이어로, Indication, Response는 상위에서 하위레이어로 동작한다는것을 알수가 있다. 각 프리미티브들은 Layer SAP (Service Access Point)를 통해서 전달되며 특정 레이어에서 요구되는 정보나 파라미터를 전달하거나 제공한다는 개념으로 설명될 수 있다. 

(즉, 주거니 받거니의 의미로 분류할수 있다)


프리미티브는 4가지의 형태로 기술할수있다.


1) Request : 서비스 사용자가 상위 레이어에게 특정 기능호출을 요구함


2) Indication :  호출된 서비스에 대해서 상위 레이어는 이를 지시로 받아들인다


3) Response : 지시받은 서비스 (indication)의 완료를 알리는 응답이다


4) Confirm : 처음 서비스 사용자가 호출한 기능이 모두 완료되었음을 확인한다.


#include <stdio.h>


위의 코드는 C언어를 코딩할 때, 정말 수없이 봐오던 문장이다.

위를 통해서 유추할수 있는 전처리기의 특징은

1) #을 적는다

2) 세미콜론; 이 없다

3) 한줄씩 선언되며 #뒤에 어떤 명령이 온다.


짐작했듯이 #뒤에는 include명령 말고도 다양한 명령이 올수가 있다.

대표적인 전처리기의 명령 몇가지만 소개하자면 아래와 같다.



- 파일 처리를 위한 전처리기 문 : #include


- 형태 정의를 위한 전처리기 문 : #define, #undef


- 조건 처리를 위한 전처리기 문 : #if, #ifdef, #ifndef, #else, #elif, #endif


- 컴파일 옵션 처리를 위한 전처리기 문 : #pragma

http://blog.naver.com/since860321?Redirect=Log&logNo=130163293294



이중에서 오늘은 조건처리에 대해서 아래의 지식인 답변을 통해서 이해해보자.





질문

c++ #ifdef #ifndef #endif 이런거 설명좀요 .. 내공25

tto**** 
질문 486건 질문마감률61%
 
2012.03.12 01:20
10
답변
 
3
 
조회
 
8,444

#ifdef

#ifndef

#endif

 

이것들에 설명좀 해주세여요

 

#define 이 되있다면

?

안되있따면?

 

#endif ??

 

제가 보통 사용하는

 

그냥 공통적으로 필요한 헤더를 모아놓고

 

한번만 선언해놓거나 구조체를 모아놔서

 

#define 이란 header 만 하나 추가시켜놓고 거기에 몰아넣어서

 

그냥 선언하는 식으로 사용할떄

 

#ifndef __DEFINES_H__

#define __DEFINES_H__

 

....

 

#endif

 

이런식으로 쓰곤했는데 사실 이게 pragma once인가 그거

 

한번만 선언? 인가.. ( 자세힌 모르지만요 ) 하게 만든다고 하기 위해 한다고 하던데

 

고수님들 소스를 보면

 

#ifdef 소스~~~

#else

 소스~~~

#endif

소스~~~

막 이런식으로 저런게 되게 cpp 에도 잇꼬 header 에도 잇고

 

저런거 어떻게 사용하죵 ??



질문자/네티즌 채택

re: c++ #ifdef #ifndef #endif 이런거 설명좀요 ..

rantsu 
답변채택률96.7%
 
2012.03.12 02:19
답변 추천하기

질문자 인사

진심 감사합니다 아 이런 훌륭한 답변들이 .. !

님이 질문하신것을보고 "전처리기"라고 합니다.

전처리기에 대한 간단한 예를 들자면요.

윈도우를 보면 홈에디션, 프로페셔널 등등 각종 버젼이 있지요?
마이크로소프트에서 윈도우 버전을 만들때 홈에디션 따로, 프로페셔널 따로 만들까요? 
그렇지는 않겠지요?

이와 마찬가지로 님이 만약에 인터넷에서 파일을 다운받는 프로그램을 만들었습니다.
여기에 속도제한을 두고 싶어요. 
무료로 배포할때는 최고 속도를 10으로 돈주고 사는 사람에게는 최고 속도를 100으로 하고 싶습니다.

#ifdef PRO_VER
#define MAX_SPEED 100
#else
#define MAX_SPEED 10
#endif

이렇게 해두고 제어코드는 다음과 같이 하면 되겠지요?
if( speed > MAX_SPEED )
    speed = MAX_SPEED; // 최고속도를 초과하면 강제적으로 최고속도로 되돌림.

자.. 이렇게 작성을 마친후에...

유료버전을 만들기 위해 컴파일러 옵션에서 PRO_VER를 참으로 지정을 해서 컴파일을 합니다.
#ifdef PRO_VER
#define MAX_SPEED 100 <- 여기에 해당되어 컴파일
#else
#define MAX_SPEED 10
#endif
그럼 이 실행파일은 최고속도로 100을 갖게 됩니다.

무료버전을 만들기 위해 PRO_VER를 거짓으로 해서 컴파일을 합니다.
#ifdef PRO_VER
#define MAX_SPEED 100
#else
#define MAX_SPEED 10 <- 여기에 해당되어 컴파일
#endif

자~ 불필요하게 소스코드를 수정하지 않고, 컴파일러 옵션 설정만으로도 유료, 무료버전을 별도로 만들었습니다. 편리하죠?


이밖에 어떤 프로그램을 윈도우 버전, 리눅스 버전을 따로 만들어 배포하고 있습니다.
근데 C코드이기 때문에 대부분이 중복되고, 극히 일부분만 다르기 때문에 코드를 따로 관리하기가 힘듭니다.
그럼 어떻게 하면 되죠?

#ifdef WINDOWS
// 윈도우일때 필요한 코드
#else
// 리눅스일때 필요한 코드
#endif

동일한 코드는 그냥 놔두고, 극히 일부분만 다른 코드만 이런식으로 처리를 해줍니다.
그럼 컴파일할때 역시 코드 수정없이 윈도우버젼, 리눅스버젼 프로그램을 따로 만들 수 있는 겁니다.

뭐.. 이밖에도 통신환경을 설정한다거나 윈도우 버전별로 다른 처리를 하는 등등..
온갖 처리에 전처리기를 사용하게 됩니다.

이해가 되셨는지요?



아주 명쾌하다. 간단한 예제를 통해서 어떤식으로 사용되고있는지 까지 설명을 아우른다.

아무래도 답변자는 제대로 프로그래밍 언어를 아는듯 하다 ㅎ

암튼 몇가지 명령을 모아서 본다면 아래의 표와 같다.



 형식

내용 

 #if 

 ~이 참이라면 

 #ifdef

 ~이 정의되어 있지 않다면

 #ifndef

 ~이 정의되어 있지 않다면

 #else

 #if나 #ifdef에 대용된다

 #elif

 else if의 의미

 #endif

 #if, #ifdef, #infdef가 끝났음을 의미


지시어설명
#include <파일이름>미리 정의된 include 폴더에서 파일을 찾는다.
#include "파일이름"현재의 소스 코드가 저장되어 있는 폴더에서 먼저 찾고,
파일이 없다면 미리 정의된 include 폴더에서 파일을 찾는다.

#error


컴파일러 오류 메시지를 발생


#import


파일을 추가한다.


#elif


Else if


#else


Else


#ifndef


식별자가 정의되어 있지 않으면 참


#ifdef


식별자가 정의되어 있으면 참


#endif


#findef나 #ifdef, #else에 대한 전처리기 부분을 종료


#line


내부 행 넘버를 변경한다.


#undef


식별자를 정의하지 않는다.


#progma

링크할 때 헤더 파일이 한 번만 포함되게 한다







: c++ #ifdef #ifndef #endif 이런거 설명좀요 ..

easyflowinc 
답변채택률34.2%
 
2012.03.12 11:16
답변 추천하기
안녕하세요.

선행 처리기(preprocessor)란 소스프로그램이 컴파일되기 전에 미리 소스프로그램에 대해 일련의 작업을 하는것입니다.

예를들면, 프로그램 상에 기술된 약식표현을 모두 원래의 표현대로 바꾸어주는 역할을 하거나, 다른 프로그램 내에 포함시키는 등의 역할을 합니다. 일반적인 C컴파일러(compiler)는 소스프로그램 전체를 선행 처리기로 일단 처리한 다음 계속해서 컴파일(compile)하고 마지막으로 링크(link)하여 실행 가능한 프로그램(.EXE 파일)을 생성합니다.

 

컴파일러의 입장에서 보면 선행 처리기에 의해서 먼저 처리된 중간 프로그램을 소스프로그램의 일종으로 취급합니다.

즉, 선행 처리기는 목적 프로그램(기계어 프로그램)을 생성하는 것이 아니라, 선행 처리기가 하는 작업은 원시 프로그램을 컴파일하기 좋도록 가공하는 작업이라 할 수 있습니다. 다시 말해서 선행 처리기는 원시 프로그램 내의 모든 선행 처리기 지시어를 컴파일 할 수 있는 C 언어의 문장으로 바꾸어 주는 작업을 수행합니다.

 

선행 처리기의 대표적인 지시어는

#define

#include

#if

#else

#endif

...

등 여러가지가 있습니다.


위와같은 선행처리기 명령들은 조건적인 컴파일을 가능하게 해 줍니다.

큰 프로그램일수록 조건부 컴파일을 많이 합니다.


#ifdef OPTION

 

#include "aaa.h"

#define bbb 5


#else


#include "ccc.h"

#define ddd 15


#endif


위의 프로그램은 이전에 배운 조건문과 비슷한 구조이므로 쉽게 파악할 수 있습니다.

마지막에 endif 는 블럭이 끝남을 알리는 선행 처리기 명령입니다


#ifdef지정어는 그 다음에 오는 명칭,

1. (OPTION)이 선행처리기로 정의되었으면, 그 지점 다음에서 #else 전 까지 사용합니다.

2. (OPTION)이 선행처리기로 정의되어있지 않으면,  #else 다음부터 #endif 전까지 사용합니다.

 

다시말해, OPTION이 정의되었는가에 따라 소스코드를 선택하여 컴파일 할 수 있도록 합니다.


#if SYS == "AndroidPC"

#include "Android.h"

#endif


이러한 조건 컴파일의 용도는 주로 프로그램의 호환성을 높이기 위하여 많이 사용합니다.

파일의 앞 부분에 있는 몇 개의 중요한 정의만 바꾸면 다른 시스템을 위한 다른파일을 포함하여 사용할 수 있습니다.

출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=147544009&qb=I2lmZGVm&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=RxRH4lpySo8ssZxVfxKsssssssK-050019&sid=UxU5IgpyVo8AAExsNIE


네이버 지식iN. 


다른 전처리기와 관련 예제코드들:

http://blog.naver.com/pointer98?Redirect=Log&logNo=150036254254


명확한 typedef의 사용법 : 

http://blog.naver.com/pure_evil?Redirect=Log&logNo=60196169024





  

'Engineering > C Language' 카테고리의 다른 글

[C언어] 비트연산자와 16진법  (0) 2014.02.27
[C++] 구조체와 클래스  (0) 2014.02.24
[C언어] 메모리구조와 동적할당  (0) 2014.02.21
[본문스크랩] enum의 사용법  (1) 2014.01.28
[C언어] 구조체사용하기  (0) 2014.01.16

+ Recent posts