[英]Why doesn't size_t complain if I keep re-declaring it?
如何在 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
嗎?
當您在兩個不同的范圍內定義具有給定名稱的變量時,您實際上是在定義兩個具有相同名稱的單獨變量,並且內部 scope 中的變量掩蓋了外部 scope 中的變量。 這是完全合法的。
但是,如果您嘗試在文件 scope 之外的同一個 scope 中定義兩個具有相同名稱的變量,則會出現錯誤。 在文件 scope 中,您可能有多個聲明,但只有一個定義,即其中只有一個可以初始化變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.