2016-06-30 17 views
3

.asciiz 문자열의 크기를 결정할 때 종료 문자로 을 사용해야합니까? 예를 들어MIPS : 크기는 ?asciiz?

:

.data 
string: .asciiz "Hello" 

"문자열"의 크기는 5 ~ 6 (바이트)인가?

미리 감사드립니다. 메모리에 문자열 예를 들어 그것의 6 바이트

당신은 문자열 길이를 계산하는 함수에 의해 반환해야하는지에 대해 물어 경우 (strlen 함수의 C 함수 다음에 저장되어 얼마나 많은 바이트에 대해 묻는 경우

+2

데이터 크기에는 문자열 끝에 NULL 바이트가 포함되므로 6 바이트를 소비합니다. 그러나 ASCIIZ 문자열의 길이는 5 자입니다. 사용 된 공간을 알고 싶다면 6 바이트가됩니다. – gusbro

+1

@gusbro 따라서 6 바이트입니다. 고맙습니다. –

답변

2

) 5이어야합니다.

1

이 asciiz 문자열은 6 바이트의 저장 공간을 필요로합니다.

프로그래밍 상황에서는 strlen()에서와 같이 문자열 크기를 5로 측정합니다.

이 문자열을 사용할 때 루프가 NULL 조건에 대해 테스트되고 5 회 반복 실행됩니다.

이 문자열을 복사하면 코드가 루프 횟수 5 회 반복되고 루프 외부에서 035 문자가 추가되어 끝에 NULL 종료를 유지합니다. 따라서 대상 저장 공간은 strlen() 이상이어야합니다.

-2

ascii의 모든 문자는 1 바이트입니다. hello를 쓰는 경우 5 바이트입니다

1

Robert와 동의합니다.이 경우 메모리의 총 바이트 수는 6입니다. 그러나 Paxym은 고급 언어에서 'size'문자열을 5로 측정합니다.