typedef struct _FILE_BOTH_DIR_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
ULONG FileAttributes;
ULONG FileNameLength;
ULONG EaSize;
CCHAR ShortNameLength;
WCHAR ShortName[12];
WCHAR FileName[1];
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
FileNameLength
被声明为ULONG
。我猜这是字节数,因为所有(或大多数)字符串长度在内核中都是字节数
昨天,我写了错误的代码,因为当我看到CCHAR ShortNameLength
时,我误解了它意味着计数char 。现在,我知道ShortNameLength需要字节数
那么,C在CCHAR中意味着什么?
答案 0 :(得分:2)
C表示匈牙利表示法。名为cch
的变量将是“字符数”,您可能希望它包含字符串长度。所以CCHAR是可以包含字符数的类型。
这是horrible abuse of Hungarian notation typical of the Windows team。