为什么gcc抱怨gets()

时间:2016-02-12 09:17:41

标签: c function gcc declaration

这是我的代码(简化):

#include <stdio.h>
#include <string.h>

#define SIZE 240

int main(void)
{
    char word[SIZE];
    gets(word);

    return 0;
}

为什么GCC会给我

№3.c: In function ‘main’: №3.c:13:2: warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration]

这个警告?

GCC vesion是5.2.1

P.S。该计划正在运作。

P.P.S。我永远不会使用gets(),我永远不会使用gets(),我永远不会使用gets(),我永远不会使用gets()

1 个答案:

答案 0 :(得分:6)

C标准不再支持函数gets,因为它是一个不安全的函数。所以似乎函数声明被排除在标题<stdio.h>之外,现在编译器不知道gets的声明是什么。

来自C标准(前言)

  

6第三版取消并取代第二版ISO / IEC   9899:1999,经ISO / IEC 9899:1999 / Cor 1:2001,ISO / IEC修正   9899:1999 / Cor 2:2004,和ISO / IEC 9899:1999 / Cor 3:2007。主要变化   来自上一版本包括:

...

— removed the gets function (<stdio.h>)