2017-04-18 7 views
-2

Visual Studio C++에서 몇 바이트의 단일 바이트 상수를 정의합니다. intellisense 팁에서 예상대로 0x06까지의 값이 표시되지만 0x07 값을 지정하면 intellisense에서 값을 "\ a"로 표시합니다.VS Intellisense는 일부 (전부는 아님) 바이트 상수에 대해 이스케이프 된 문자를 표시합니다.

왜 이런 일이 발생합니까?

+0

https://en.wikipedia.org/wiki/Escape_sequences_in_C 왜 나는이 질문에 대한 다운 투표를 얻었 는가 -

는 이스케이프 시퀀스의 다음 문서를 참조하십시오? 나는 명백한 것을 놓치고 있다는 것을 알았지 만, 나는 물었고, 나는 다시 나를 굴리는 데 필요한 대답을 빨리 받았다. –

답변

3

당신은 인텔리 센스를 잘못 읽고 있습니다. 0x7 = '\ a'리터럴 char 'a'가 아닙니다. '\ a'는 벨/알람입니다.

2

'\a' 실제로 값은 0x7입니다. 0x07uint8_t에 할당하면 컴파일러가 해당 할당을 다른 것으로 변경하지 않는다고 확신 할 수 있습니다. IntelliSense는 다른 방식으로 값을 나타내며 값을 변경하지 않습니다.

또한 'a'의 값은 0x61이며, 이는 아마도 사용자를 트려 먹은 것입니다.