为什么以下代码给出:
#include<stdio.h>
int voo()
{
printf ("Some Code");
return 0;
}
int main() {
printf ("%zu", sizeof voo);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
以下输出:
1
Run Code Online (Sandbox Code Playgroud) 我有两个函数没有任何实现。
我希望链接器返回对 hello 和 world 错误的未定义引用。
但令人惊讶的是,代码编译并运行时没有任何错误。
#include <stdio.h>
int hello();
char world();
int main() {
printf("sizeof hello = %zu, sizeof world = %zu\n", sizeof(hello()), sizeof(world()));
}
Run Code Online (Sandbox Code Playgroud)
sizeof hello = 4, sizeof world = 1
Run Code Online (Sandbox Code Playgroud)