int main()
{
int main=5;
printf("%d",main);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,没有错误,gcc编译器打印5.但如果我写
int main()
{
int printf=5;
printf("%d",printf);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器显示错误..为什么?
在第一个示例中,您"隐藏"该main功能,将其替换为int对象.
在第二个示例中,您将"隐藏"该printf功能,将其替换为int对象.试图打电话int是非法的.
5("foo"); /* illegal to call "function" 5 */
Run Code Online (Sandbox Code Playgroud)