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编译器上编译 很可能有人试图初始化结构,但失败

你能用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-很好。很高兴能帮助。