这是我的代码(简化):
#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()
答案 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>)