큰 점을 자기에 대한 기억 - 정교화 - C++는 많이 타입 변환되어 있으며, Forth는 공동 맞은 편의 mplete. Height를 문자열, 정수 또는 부동 소수로 지정하고 서명되었거나 서명되지 않았습니까? 각각은 자체 유스 케이스를 가지고 있습니다. 선택한 값에 상관없이 Height 변수를 마음에두고 선택한 유형으로 상호 작용해야합니다. 귀하의 비트가 매번 의미하는 바를 생각하십시오.
ATOI 호출로 판단 할 때 높이 값을 정수로 가정한다고 가정합니다. 하지만 5 바이트 정수는 이상한 일이 아니므로 여전히 확실하지 않습니다. 그러나 여기에 가정하에 진행됩니다 세포가 전화
VARIABLE Height 1 CELLS ALLOT
VARIABLE StrBuffer 7 ALLOT
: setHeight (--)
StrBuffer 8 ACCEPT
DECIMAL ATOI Height ! ;
당신이 당신의 CPU가 선호하는 비트 수의 변수를 만들 확인합니다. DECIMAL 호출은 ATOI 이전의 길을 따라 어딘가에서 16 진수로 변경하지 않았는지 확인합니다.
StrBuffer 변수를 만드는 것은 문자열에 스크래치 공간을 확보하는 여러 가지 방법 중 하나입니다. CELL이 16 비트라고 가정하면 영숫자 16 비트 부호있는 정수 (예 : "-32767 \ 0")의 경우 최대 7자를 필요로합니다. 일부 구현에는 자체 버퍼를 만드는 대신 PAD가 사용될 수 있습니다. 또 다른 일반적인 단어는 SCRATCH이지만, 나는 그것이 우리가 원하는 방식으로 작동한다고 생각하지 않습니다.
개인적으로 얼마나 많은 공간을 확보했는지 알고 있기 때문에 개인적으로 좋아하는 자신의 문자열 버퍼 공간을 고수한다면 모든 단어의 문자열 처리 요구에 대해 하나의 큰 버퍼를 만드는 것을 고려하십시오. 예를 들어 :이 또한 200 개 문자로, 16 비트 CELL의 가정을 할 필요에서 당신을 유지
VARIABLE StrBuffer 201 ALLOT
쉽게 구현의 CELL의 현재 크기 나까지 날 경우, 64 비트 정수를 수용 도로.
PAD는 CORE 단어 세트의 표준 단어이므로 모든 표준 Forth는 PAD가 필요합니다. PAD는 이런 종류의 임시 버퍼로 사용되기 때문에이 것을위한 자체 버퍼를 만들지는 모르겠다. –
@MichaelMorris 컴파일 된 응용 프로그램으로 실행되도록 설계된 임베디드 응용 프로그램에서는 PAD가있을 수 있지만 작동하지 않을 수 있습니다. 예를 들어, 컴파일 된 사전은 장치가 제공 될 때 플래시 메모리에 하드 디스크에 기록되며 사용자에게는 결코 대화 형이 아닙니다.PAD는 종종 사전 상단을 사용하여 구현되지만 플래시에 쓸 수있는 지원이 없으면 PAD에 쓰기가 실패합니다. 또한 FWIW는 CORE가 아니라 CORE EXT의 일부입니다. – CivFan