在功能块外声明的C中的自动存储类变量 #包括 无效功能1(无效); 自动积分z=10; int main() { printf(“你好,我是main.\n”); } 无效功能1(无效) { printf(“你好,我是function1.\n”); } 变量“z”在函数块外声明,属于 “自动存储类” 在这种情况下,变量“z”是哪个功能块的一部分? 在这种情况下,变量“z”的属性是什么?

在功能块外声明的C中的自动存储类变量 #包括 无效功能1(无效); 自动积分z=10; int main() { printf(“你好,我是main.\n”); } 无效功能1(无效) { printf(“你好,我是function1.\n”); } 变量“z”在函数块外声明,属于 “自动存储类” 在这种情况下,变量“z”是哪个功能块的一部分? 在这种情况下,变量“z”的属性是什么?,c,C,代码包含约束冲突,不是有效的C代码。这意味着不能保证您的代码能够正确编译或工作 6.9外部定义 约束 存储类说明符auto和register不得出现在 外部声明 因此,您的问题的答案是: 变量不是任何函数块的一部分,因为它是外部声明 变量z的属性未定义,因为代码无效 代码包含约束冲突,不是有效的C代码。这意味着不能保证您的代码能够正确编译或工作 6.9外部定义 约束 存储类说明符auto和register不得出现在 外部声明 因此,您的问题的答案是: 变量不是任何函数块的一部分,因为它是外部

代码包含约束冲突,不是有效的C代码。这意味着不能保证您的代码能够正确编译或工作

6.9外部定义 约束

  • 存储类说明符
    auto
    register
    不得出现在 外部声明
  • 因此,您的问题的答案是:

    • 变量不是任何函数块的一部分,因为它是外部声明
    • 变量
      z
      的属性未定义,因为代码无效
    代码包含约束冲突,不是有效的C代码。这意味着不能保证您的代码能够正确编译或工作

    6.9外部定义 约束

  • 存储类说明符
    auto
    register
    不得出现在 外部声明
  • 因此,您的问题的答案是:

    • 变量不是任何函数块的一部分,因为它是外部声明
    • 变量
      z
      的属性未定义,因为代码无效

    在询问代码是否合理之前,您是否尝试过由编译器运行该代码?@StoryTeller是的。您没有发现任何错误?现在我很好奇。你用的是什么编译器?在我看来,这是个好问题。但“它编译”并不意味着程序是正确的。您应该始终查找警告(并使用
    -Wall
    -Wextra
    启用大部分警告)。顺便说一句,它不是用gcc 5.4.0编译的。@ShaikNisarAhmed我有一个错误,程序没有编译。如果程序没有编译,那么讨论变量的所有权是毫无意义的。在询问代码是否有意义之前,您是否尝试过由编译器运行它?@StoryTeller是的。您没有错误吗?现在我很好奇。你用的是什么编译器?在我看来,这是个好问题。但“它编译”并不意味着程序是正确的。您应该始终查找警告(并使用
    -Wall
    -Wextra
    启用大部分警告)。顺便说一句,它不是用gcc 5.4.0编译的。@ShaikNisarAhmed我有一个错误,程序没有编译。如果程序没有编译,那么讨论变量的所有权是毫无意义的。
    #include<stdio.h>
    void function1(void);
    auto int z = 10;
    
    int main()
    {
    printf("Hello, I'm main.\n");
    }
    
    void function1(void)
    {
    printf("Hello, I'm function1.\n");
    }