好的,我有这个代码:
str.c:
char *str = "example";
Run Code Online (Sandbox Code Playgroud)
main.c中:
int str(void);
int main(void)
{
str();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
生成文件:
CC = gcc
CFLAGS = -Wall -g
all: main
main: main.o str.o
main.o: main.c
str.o: str.c
clean:
rm -rf *.o main
Run Code Online (Sandbox Code Playgroud)
乍一看,有人可能会说这是一个未定义的参考错误或类似的东西.但编译器只接受此代码.
问题是,为什么我没有得到编译错误?
很明显,该功能没有正确定义.如果我使用gdb打破str()调用,我得到一个警告类型函数str未定义..