当前位置: 首页 > 面试题库 >

隐式声明“获取”

燕承安
2023-03-14
问题内容

我了解“隐式声明”通常意味着必须在调用函数之前将其置于程序的顶部,否则我需要声明原型。
但是,gets应该在stdio.h文件中(该文件已包含在内)。
有没有什么办法解决这一问题?

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   char ch, file_name[25];
   FILE *fp;

   printf("Enter the name of file you wish to see\n");
   gets(file_name);
   fp = fopen(file_name,"r"); // read mode
   if( fp == NULL )
   {
      perror("Error while opening the file.\n");
      exit(EXIT_FAILURE);
   }
}

问题答案:

没错,如果您包含适当的标头,则不应收到隐式声明警告。

然而,该功能gets()已被 删除 ,从C11的标准。这意味着gets()in中不再有原型<stdio.h>gets() 曾经
<stdio.h>

删除的原因gets()是众所周知的:它不能防止缓冲区溢出。因此,您永远不应使用gets()fgets()而应改用尾随的换行符(如果有)。



 类似资料:
  • 本文向大家介绍VBA 隐式和显式声明,包括了VBA 隐式和显式声明的使用技巧和注意事项,需要的朋友参考一下 示例 如果代码模块不包含Option Explicit在模块顶部,则编译器将在使用它们时自动(即“隐式”)为您创建变量。它们将默认为变量类型Variant。 在上面的代码,如果Option Explicit指定,代码将中断,因为它缺少必要Dim的陈述someVariable和someOthe

  • 问题内容: 我一直在看一些代码,很难在php类中计算变量声明。具体来说,似乎我正在查看的代码在使用它们之前没有声明类变量。现在这是可以预期的,但是我找不到任何表明可能的信息。所以您会期望这样: 上班?并在类实例上创建这些变量以供以后使用吗? 问题答案: 这与正常变量声明的工作原理相同: PHP类与其他语言不太一样,在其他语言中,需要将成员变量指定为类声明的一部分。PHP类成员可以随时创建。 话虽如

  • 我正在用C写这个链表程序 我测试程序时发现了错误 linkedlist。cpp:5:24:错误:隐式声明的“constexpr LinkedList::LinkedList()”LinkedList::LinkedList()的定义{ 这是密码 Linkedlist. h文件: linkedlist。cpp文件: 请帮忙。

  • gcc是否有一个选项来禁用未显式定义为volatile的全局变量的读/写优化? 我的团队正在耗尽我们的嵌入式C项目的程序内存,该项目使用gcc构建。当我启用优化以减少代码大小时,代码不再像预期的那样工作,因为我们没有在我们应该使用的地方使用volatile关键字。也就是说,我能够通过声明在ISRs Volatile中访问的几个变量来解决呈现的问题。然而,我并不确定这些是我需要声明volatile的

  • 问题内容: 我想摆脱警告。当我用 我回来 当我不使用 -ansi 开关进行编译时 我在终端上看到 我想使用 -ansi 开关并摆脱警告。我如何实现我的目标? 环境: CentOS 6.3 32位 gcc版本4.4.7 20120313(Red Hat 4.4.7-3)(GCC) 问题答案: 并且是GNU扩展功能,添加 *包括所有标题 *之前 ,或添加GCC选项。 您不应该直接定义宏,它应该仅在gl

  • 声明式安全是指以在应用外部的形式表达应用的安全模型需求,包括角色、访问控制和认证需求。部署描述符是web应用中的声明式安全的主要手段。 部署人员映射应用的逻辑安全需求到特定于运行时环境的安全策略的表示。在运行时,servlet 容器使用安全策略表示来实施认证和授权。 安全模型适用于 web 应用的静态内容部分和客户端请求到的应用内的servlet 和过滤器。安全模型不适用于当 servlet 使用