C语言中结构的全局变量声明
你能用C语言告诉我这段代码的意思吗 这是全局变量定义C语言中结构的全局变量声明,c,global-variables,structure,C,Global Variables,Structure,你能用C语言告诉我这段代码的意思吗 这是全局变量定义 static const struct_name global_variable_name = // (Added equals to here) { function_call_1, // (comma instead of semicolon) function_call_2, // ditto NULL, NULL, } 它没有任何意义,它是胡言乱语,不会在C编译器上编译 很可能有人试图初始化结构,但失败
static const struct_name global_variable_name = // (Added equals to here)
{
function_call_1, // (comma instead of semicolon)
function_call_2, // ditto
NULL,
NULL,
}
它没有任何意义,它是胡言乱语,不会在C编译器上编译
很可能有人试图初始化结构,但失败了 它没有任何意义,它是胡言乱语,不会在C编译器上编译
很可能有人试图初始化结构,但失败了 If看起来像是试图初始化结构的东西(但是缺少等于,分号应该是逗号)。此代码来自何处,是否在其环境中编译 给定一个结构(我在猜测它是什么类型的结构): 还有一些函数指针:
void* func1 = NULL;
void* func2 = NULL;
然后使用=对args进行初始化,并使用逗号:
static const struct_name global_variable_name =
{
func1,
func2,
NULL,
NULL,
};
只是一个猜测,因为您提供的代码未编译且无效。看起来可能是某种“定义”的诡计,struct\u name
或global\u variable\u name
\defines
更新
根据您最近的编辑和评论:
是的,你是对的,我修改了代码。这是全局变量定义
static const struct_name global_variable_name = // (Added equals to here)
{
function_call_1, // (comma instead of semicolon)
function_call_2, // ditto
NULL,
NULL,
}
然后,代码正在初始化一个类型为struct\u name
的全局变量global\u variable\u name
,它是一个结构。与按如下方式声明整数时可以初始化整数的方式相同:
int myInteger = 1;
可以在声明结构时对其进行初始化。让我们用一个更简单的例子:
struct simple_struct
{
int val1;
int val2;
};
static const simple_struct global_simpleStruct =
{
1,
2
};
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "val1:" << global_simpleStruct.val1 << ", val2:" << global_simpleStruct.val2;
return 0;
}
struct simple\u struct
{
int val1;
int val2;
};
静态常量简单结构全局简单结构=
{
1.
2.
};
int _tmain(int argc,_TCHAR*argv[]
{
std::cout如果看起来像是试图初始化结构的东西(但是缺少等号,分号应该是逗号)。这段代码来自哪里,它是在它的环境中编译的
给定一个结构(我在猜测它是什么类型的结构):
还有一些函数指针:
void* func1 = NULL;
void* func2 = NULL;
然后使用=对args进行初始化,并使用逗号:
static const struct_name global_variable_name =
{
func1,
func2,
NULL,
NULL,
};
只是一个猜测,因为您提供的代码未编译且无效。它看起来可能是某种“定义欺骗”,是struct\u name
还是global\u variable\u name
\defines
更新
根据您最近的编辑和评论:
是的,你是对的,我修改了代码。这是全局变量定义
static const struct_name global_variable_name = // (Added equals to here)
{
function_call_1, // (comma instead of semicolon)
function_call_2, // ditto
NULL,
NULL,
}
然后,代码正在初始化一个全局变量global\u variable\u name
,该变量的类型为struct\u name
,它是一个结构。与在声明整数时初始化整数的方式相同,如下所示:
int myInteger = 1;
你可以在声明它时初始化一个结构。让我们用一个简单的例子:
struct simple_struct
{
int val1;
int val2;
};
static const simple_struct global_simpleStruct =
{
1,
2
};
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "val1:" << global_simpleStruct.val1 << ", val2:" << global_simpleStruct.val2;
return 0;
}
struct simple\u struct
{
int val1;
int val2;
};
静态常量简单结构全局简单结构=
{
1.
2.
};
int _tmain(int argc,_TCHAR*argv[]
{
std::cout或可能有人试图复制/粘贴实际源代码但失败。或可能有人试图复制/粘贴实际源代码但失败。除非您有预处理器\define global\u variable\u name function\u name(可选参数),否则显示的是无效的C
将其转换为函数定义,然后函数体基本上是无意义的,除非函数调用_1;
实际上是用括号编写的,使其成为函数调用(或者有另一个宏来解决该问题),对于function\u call\u 2;
,也是如此,这两个NULL;
语句是毫无意义的。如果您使用逗号而不是分号,另一组黑客可以使其可编译。但它在编写时没有意义。除非您有一个预处理器\define global\u variable\u function\u name,否则显示的是无效的C(可选参数)
使其成为函数定义,然后函数体基本上是无意义的,除非函数调用
实际上是用括号编写的,以使其成为函数调用(或者有另一个宏来解决该问题),函数调用也一样,
,两个NULL;
语句是毫无意义的。如果你用逗号而不是分号,另一组黑客可以使它可编译。但它没有写出来的意义。是的,你是对的,我修改了代码。这是全局变量定义。但我不理解相同。你能清除它吗?是的!我知道了。非常感谢。:@Fagun-很好。很高兴能帮助。是的,你是对的,我修改了代码。这是全局变量定义。但我不理解相同的含义。你能清除它吗?是的!我知道了。非常感谢。@Fagun-很好。很高兴能帮助。