PRINT 출력
PRINTFORM 출력

이렇게 똑같은 출력문인데 깔맞춤을 위해서 PRINTFORMW같은걸 주르륵 깔고 시작하는 경우가 많을거임 서식 추가할때마다 FORM 넣고 없어지면 다시 지우고 귀찮잖음

이런 경우에 실제로는 어떤 차이가 있을까? Emuera 소스를 조금 뜯어서 설명해봄

밑에 요약있음

Emuera에선 기초적인 최적화가 구현돼있음 그중 하나가 인수가 불변할때 상수값으로 치환하는거임

일단 PRINT랑 PRINTFORM은 내부적으로는 둘다 PRINT 명령어고 인자 타입이 다를뿐인데


```
        public override IOperandTerm Restructure(ExpressionMediator exm)
         {
                         sfValue.Restructure(exm);
                         if(sfValue.IsConst)
                                 return new SingleTerm(sfValue.GetString(exm));
                         IOperandTerm term = sfValue.GetIOperandTerm();
                         if(term != null)
                                 return term;
                         return this;
         }
```

이건 PRINTFORM에서 갖는 StrFormTerm이 가지고 있는 최적화 코드임 여기서 StrForm이 IsConst일때 그냥 문자인자로 치환돼버림

이러면 PRINT를 썼을때랑 완전히 동일한 형식으로 변환됨 단지 컴파일 시간과 도중의 메모리 소비가 조금 더 늘어날것임



하지만 최종 결과물에서 메모리 차이가 존재함 이건 어디서 나오는건가?

그냥 글자수 차이임 PRINTFORM이 2*4해서 8바이트 더먹음 끝