C语言gets函数未定义却能编译,为什么

在学习C语言过程中遇到一个问题:
<stdio.h>中未定义gets函数,为什么编译的时候还能正常编译,并且也没有警告。
软件使用的vs2019

#include <stdio.h>
int main(void)
{
    char name[40];
    printf("What's your name?\n");
    gets(name);
    printf("Hello, %s!", name);
    return 0;
}

输出结果如下:

img

貌似能正常运行,不知道为何没有影响。

img

并且gets函数这里好像返回的是int类型,也不知道为什么,求指点!

不对吧,再vs2015以后gets已经弃用了呀,换成了gets_s了啊

gets函数包含在<stdio.h>中

新版标准是gets_s();
试试看