c語言中塊作用域的優先順序高於檔案作用域

小鲨鱼2018發表於2024-11-22

001、

[root@PC1 test]# ls
test.c
[root@PC1 test]# cat test.c
#include <stdio.h>

int a = 100;         // 該變數具有檔案作用域

int main(void)
{
        printf("a = %d\n", a);     // 在程式快中呼叫外部變數

        return 0;
}
[root@PC1 test]# gcc test.c -o kkk
[root@PC1 test]# ls
kkk  test.c
[root@PC1 test]# ./kkk
a = 100

002、

[root@PC1 test]# ls
test.c
[root@PC1 test]# cat test.c          ## 測試程式
#include <stdio.h>

int a = 100;

int main(void)
{
        int a = 500;        // 塊作用域的變數, 優先順序高於檔案作用域
        printf("a = %d\n", a);

        return 0;
}
[root@PC1 test]# gcc test.c -o kkk      ## 編譯
[root@PC1 test]# ls
kkk  test.c
[root@PC1 test]# ./kkk                  ## 運算測試
a = 500

相關文章