CCHAR在Windows类型中的含义是什么?

时间:2011-10-28 07:03:23

标签: windows winapi types

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中意味着什么?

1 个答案:

答案 0 :(得分:2)

C表示匈牙利表示法。名为cch的变量将是“字符数”,您可能希望它包含字符串长度。所以CCHAR是可以包含字符数的类型。

这是horrible abuse of Hungarian notation typical of the Windows team