Visual Studio C++에서 몇 바이트의 단일 바이트 상수를 정의합니다. intellisense 팁에서 예상대로 0x06까지의 값이 표시되지만 0x07 값을 지정하면 intellisense에서 값을 "\ a"로 표시합니다.VS Intellisense는 일부 (전부는 아님) 바이트 상수에 대해 이스케이프 된 문자를 표시합니다.
왜 이런 일이 발생합니까?
Visual Studio C++에서 몇 바이트의 단일 바이트 상수를 정의합니다. intellisense 팁에서 예상대로 0x06까지의 값이 표시되지만 0x07 값을 지정하면 intellisense에서 값을 "\ a"로 표시합니다.VS Intellisense는 일부 (전부는 아님) 바이트 상수에 대해 이스케이프 된 문자를 표시합니다.
왜 이런 일이 발생합니까?
당신은 인텔리 센스를 잘못 읽고 있습니다. 0x7 = '\ a'리터럴 char 'a'가 아닙니다. '\ a'는 벨/알람입니다.
'\a'
실제로 값은 0x7입니다. 0x07
을 uint8_t
에 할당하면 컴파일러가 해당 할당을 다른 것으로 변경하지 않는다고 확신 할 수 있습니다. IntelliSense는 다른 방식으로 값을 나타내며 값을 변경하지 않습니다.
또한 'a'
의 값은 0x61이며, 이는 아마도 사용자를 트려 먹은 것입니다.
https://en.wikipedia.org/wiki/Escape_sequences_in_C 왜 나는이 질문에 대한 다운 투표를 얻었 는가 -
는 이스케이프 시퀀스의 다음 문서를 참조하십시오? 나는 명백한 것을 놓치고 있다는 것을 알았지 만, 나는 물었고, 나는 다시 나를 굴리는 데 필요한 대답을 빨리 받았다. –