小编CSs*_*udZ的帖子

C中不同类型的外部变量

当我遇到这种情况时,我正在测试范围和可见性,我找不到解释:

我有两个 .c 文件:

F1.c

#include <stdio.h>

void Modify();

int i;
int j;

int main()
{
  i=1;

  printf("i (main 1) = %d\n", i);

  Modify();

  printf("i (main 2) = %d\n", i);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

F2.c

#include <stdio.h>

extern char i [10];
extern int j;

void Modify()
{
  j=0;
  i[0]='a';
  i[1]= 'b';
  i[4]= 'e';

  printf("i (Modify) = %c\n", i[0]);
  printf("j (Modify) = %d\n", j);
}
Run Code Online (Sandbox Code Playgroud)

当我编译并链接它们以创建我启动的可执行文件时,结果如下:

我(主要 1)= 1

i (修改) = a

j(修改)= 0

我(主要 2)= 25185

怎么了?我会改变类型吗?给出一个大小的数组是否会压倒 F1.c 中 …

c casting declaration extern linkage

2
推荐指数
1
解决办法
111
查看次数

标签 统计

c ×1

casting ×1

declaration ×1

extern ×1

linkage ×1