Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.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 参数';样本2';隐藏同一符号的全局声明_C_Global Variables - Fatal编程技术网

C 参数';样本2';隐藏同一符号的全局声明

C 参数';样本2';隐藏同一符号的全局声明,c,global-variables,C,Global Variables,我在C中遇到了一个奇怪的问题。我有一个结构,我将示例指向该结构: 测试样本 现在在代码中,我通过一个函数调用该结构: 函数名为something,因此something(&sample)用于指向函数中的结构 现在我需要将sample的值复制到sample2。。所以我希望sample2也指向相同的结构。因此,我还在main之前声明了testsample2,并将其用作全局变量。现在,当它用于指向函数结构中的内容时,sample必须在不使用(*sample2.content或sample2->cont

我在C中遇到了一个奇怪的问题。我有一个结构,我将示例指向该结构:

测试样本

现在在代码中,我通过一个函数调用该结构:

函数名为
something
,因此
something(&sample)
用于指向函数中的结构

现在我需要将
sample
的值复制到
sample2
。。所以我希望
sample2
也指向相同的结构。因此,我还在main之前声明了
testsample2
,并将其用作全局变量。现在,当它用于指向函数结构中的内容时,
sample
必须在不使用
(*sample2.content
sample2->content
的情况下调用。我只需要编写
sample2.content
。我知道这是因为sample2在全球范围内声明。。。但我在编译时也会发现:

注释528-参数“sample2”隐藏了同一符号的全局声明


该程序运行良好,但我想删除此编译器消息。。。为什么会这样说?这是什么意思?

没有看到代码,我不能确定

但听起来你有一个函数正在进行一个“测试”,你称之为“sample2”,这样做意味着你不能访问你全局定义的sample2


将代码放在您的问题中会很有用。

如果没有看到代码,我无法确定

但听起来你有一个函数正在进行一个“测试”,你称之为“sample2”,这样做意味着你不能访问你全局定义的sample2


将代码放在问题中会很有用。

问题在于,如果您引用符号
sample
,编译器在函数内部有两种选择。第一个是全局变量,第二个是您提供给函数的参数。编译器所做的是提醒您,它假定您指的是局部变量,而不是全局变量


一般来说,这是一个痛苦和错误的食谱,你说你的代码按预期运行。我不能说如何或为什么不仔细看它。最简单的答案是将函数的参数名更改为不同的名称,或将全局变量更改为不同的名称。

问题是,如果引用符号
sample
,编译器在函数内部有两种选择。第一个是全局变量,第二个是您提供给函数的参数。编译器所做的是提醒您,它假定您指的是局部变量,而不是全局变量


一般来说,这是一个痛苦和错误的食谱,你说你的代码按预期运行。我不能说如何或为什么不仔细看它。最简单的答案是将函数的参数名更改为其他名称,或将全局变量更改为其他名称。

实际上,您必须使用点(
)成员选择器,而不是 箭头(
->
)是成员选择器,因为sample是一个结构,而不是 而不是指向结构的指针。这与您收到的错误消息无关

我的猜测(因为我看不到您的代码)是您将
sample2
作为参数传递给函数。此
sample2
与您在全局声明的结构不同。由于它们具有相同的名称,因此只能在该函数中使用参数,而不能在全局
sample2
中使用参数


请考虑编辑你的问题并张贴你的全部代码进行复习。你的问题中有很多奇怪的假设,你可能依赖于不止一个误解。

实际上,你必须使用点(
)成员选择器,而不是 箭头(
->
)是成员选择器,因为sample是一个结构,而不是 而不是指向结构的指针。这与您收到的错误消息无关

我的猜测(因为我看不到您的代码)是您将
sample2
作为参数传递给函数。此
sample2
与您在全局声明的结构不同。由于它们具有相同的名称,因此只能在该函数中使用参数,而不能在全局
sample2
中使用参数


请考虑编辑你的问题并张贴你的全部代码进行复习。您的问题中有很多奇怪的假设,您可能依赖于不止一个误解。

真正的代码更容易理解。你能发布一些代码吗?你在上面的描述中使用“指向”这个词的方式似乎没有多大意义,至少对我来说是这样。发布一个真实的代码片段来说明这个问题。一个真实的代码会更容易理解。你能发布一些代码吗?你在上面的描述中使用“指向”这个词的方式似乎没有多大意义,至少对我来说是这样。发布一段说明问题的真实代码片段。