Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “的含义;静态声明“;Windows经典示例中的注释_C++_Windows_Winapi_Declaration - Fatal编程技术网

C++ “的含义;静态声明“;Windows经典示例中的注释

C++ “的含义;静态声明“;Windows经典示例中的注释,c++,windows,winapi,declaration,C++,Windows,Winapi,Declaration,有一个包含以下代码和注释的示例: struct PROPERTYMAP { const PROPERTYKEY *pkey; // pointer type to enable static declaration PCWSTR pszXPathParent; PCWSTR pszValueNodeName; }; const PROPERTYMAP g_rgPROPERTYMAP[] = { { &PKEY_Title,

有一个包含以下代码和注释的示例:

struct PROPERTYMAP
{
    const PROPERTYKEY *pkey;    // pointer type to enable static declaration
    PCWSTR pszXPathParent;
    PCWSTR pszValueNodeName;
};

const PROPERTYMAP g_rgPROPERTYMAP[] =
{
    { &PKEY_Title,                             L"Recipe",                L"Title" },
    { &PKEY_Comment,                           L"Recipe",                L"Comments" },
    { &PKEY_Author,                            L"Recipe/Background",     L"Author" },
    { &PKEY_Keywords,                          L"Recipe/RecipeKeywords", L"Keyword" },
    { &PKEY_Microsoft_SampleRecipe_Difficulty, L"Recipe/RecipeInfo",     L"Difficulty" },
};

有人知道“静态声明”是什么意思吗?感谢您提供的任何信息。

它可能是指将
pkey
字段声明为
PROPERTYKEY*
指针,而不是
PROPERTYKEY
实例。如果将
pkey
作为一个实例,则
g_rgPROPERTYMAP
的声明将不能作为单个语句工作,因此不能用来初始化
静态
常量变量。为什么它不能作为一个语句使用?它是一个指针,所以您不必将该值复制到映射表中。@loop123123要成为一个语句,数组中所有元素的所有字段都必须一次性初始化。如果
pkey
constpropertykey
而不是
constpropertykey*
,那么
g_rgPROPERTYMAP
必须像
={{pkey_Title,…},{pkey_Comment,…},}那样初始化,这将要求编译器将每个
PKEY
复制到数组中,这在静态变量初始化中实际上是不允许的(请参阅)。好的,如果我错了,请纠正我,但是执行
const PROPERTYKEY
将进行编译,但映射必须在运行时而不是编译时初始化?