0
我正在使用Visual Studio 2015,並且在此環境上只有幾個月的使用經驗。我有一些C++和C的經驗。Visual Studio:觀察窗口:C++:爲什麼垃圾字符類型的成員?
當運行下面的代碼,並通過調試器的觀察窗口檢查tmp類的成員時,我可以看到值列上的char和unsigned char類型成員的一些垃圾。
我重視這個時候發生phenominoun手錶窗口的截屏。
例子:
clock_class 1 '\x1' unsigned char
priority2 248 '・' unsigned char
log_sync_interval -3 '' char
log_announce_interval 0 '\0' char
爲什麼出現這種情況? 這是Visual Studio的規範還是我的代碼有問題? 在我的理解,C++處理字符類型爲8位變量, 因此,我想知道爲什麼會發生這種情況。
-------------------------------------------------------
Code:
#include "stdafx.h"
#include "stdint.h"
struct test_class{
public:
uint16_t descriptor_index;
uint16_t localized_description;
uint64_t mac_address;
uint16_t interface_flags;
uint64_t clock_identity;
uint8_t priority1;
uint8_t clock_class;
uint16_t offset_scaled_log_variance;
uint8_t clock_accuracy;
uint8_t priority2;
uint8_t domain_number;
int8_t log_sync_interval;
int8_t log_announce_interval;
int8_t log_pdelay_interval;
uint16_t port_number;
};
int main()
{
test_class * tmp = new test_class;
tmp->descriptor_index = 0;
tmp->localized_description = 65535;
tmp->mac_address = 0x22970405b7;
tmp->interface_flags = 0x7;
tmp->clock_identity = 0x2297fffe0405b7;
tmp->priority1 = 0;
tmp->clock_class = 1;
tmp->offset_scaled_log_variance = 17258;
tmp->clock_accuracy = 32;
tmp->priority2 = 248;
tmp->domain_number = 0;
tmp->log_sync_interval = -3;
tmp->log_announce_interval = 0;
tmp->log_pdelay_interval = 0;
tmp->port_number = 1;
<- Break at here and watch members of tmp
delete tmp;
return 0;
}
-------------------------------------------------------
的值是正確的,內部'」「'的符號是該值代表CHARACT –