gpt4 book ai didi

c - 如果我一直重新声明它,为什么 size_t 不提示?

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:23 25 4
gpt4 key购买 nike

如何允许我在 C 中执行以下操作?

char * string;
size_t string_len;
unsigned int idx;

for (idx=0; (string=src[idx]) != NULL; idx++) {
size_t string_len = strlen(string);
if (!(dest[idx] = malloc(string_len + 1))) {
perror("Failed to copy string value");
exit (EXIT_FAILURE);
}
dest[idx] = string;
}

是否应该在第 6 行重新声明 size_t 引发错误,类似于我重新声明 int idx

最佳答案

当您在两个不同的作用域中定义一个具有给定名称的变量时,您实际上是在定义两个具有相同名称的独立变量,并且内部作用域中的那个屏蔽外部范围。这是完全合法的。

但是,如果您尝试在除文件范围之外的相同范围 中定义两个具有相同名称的变量,则会出现错误。在文件范围内,您可能有多个声明,但只有一个定义,即只有其中一个可以初始化变量。

关于c - 如果我一直重新声明它,为什么 size_t 不提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58151466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com