我有两个C文件,main.c并且weird.c:
// main.c
int weird(int *);
int
main(void)
{
int x, *y;
y = (int *)7;
x = weird(y);
printf("x = %d\n", x);
return (0);
}
// weird.c
char *weird = "weird";
Run Code Online (Sandbox Code Playgroud)
但是,当我运行以下内容时:
clang -Wall -Wextra -c main.c
clang -Wall -Wextra -c weird.c
clang -o program main.o weird.o
Run Code Online (Sandbox Code Playgroud)
我没有得到任何错误.为什么是这样?不应该至少有链接错误?请注意,我只是在谈论编译文件 - 而不是运行它们.运行会产生分段错误.