programing

음, PRIu64는 누구입니까?

goodcopy 2021. 1. 15. 19:19
반응형

음, PRIu64는 누구입니까?


저는 C를 처음 접했고 다음과 같은 문제에 직면했습니다.

#include <stdio.h>
#include <inttypes.h>

int main(void)
{
    uint64_t foo = 10;
    printf("foo is equal to %" PRIu64 "!\n", foo);

    return 0;
}

그리고 작동합니다! 왜 그런지 모르겠어요? 누군가 이것에 대해 나를 도울 수 있습니까? 감사합니다! torr


PRIu64인쇄를 위해 C99에 도입 된 형식 지정자입니다. uint64_t여기서 uint64_tis (링크 된 참조 페이지에서) :

너비가 각각 ... 64 비트 인 부호없는 정수 유형 (구현이 유형을 직접 지원하는 경우에만 제공됨)

PRIu64 문자열 (리터럴)입니다. 예를 들면 다음과 같습니다.

printf("%s\n", PRIu64);

llu내 컴퓨터에 인쇄 됩니다. 인접한 문자열 리터럴은 C99 표준의 섹션 6.4.5 문자열 리터럴 에서 연결됩니다 .

변환 단계 6에서 인접한 문자 및 와이드 문자열 리터럴 토큰의 시퀀스에 의해 지정된 멀티 바이트 문자 시퀀스는 단일 멀티 바이트 문자 시퀀스로 연결됩니다 . 토큰 중 하나가 와이드 문자열 리터럴 토큰 인 경우 결과 멀티 바이트 문자 시퀀스는 와이드 문자열 리터럴로 처리됩니다. 그렇지 않으면 문자열 리터럴로 처리됩니다.

이것은 다음을 의미합니다.

printf("foo is equal to %" PRIu64 "!\n", foo);

(내 컴퓨터에서) 다음과 같습니다.

printf("foo is equal to %llu!\n", foo);

http://ideone.com/jFvKR9를 참조하십시오 .

참조 URL : https://stackoverflow.com/questions/16859500/mmh-who-are-you-priu64

반응형