加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C语言,正确使用包括警卫

发布时间:2020-12-16 09:53:48 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个头文件(包括我为AVL Trees编写的函数),但我有一个小问题和对包含警卫的语法的误解. 现在我的代码看起来像这样 #ifndef STDIO_H#define STDIO_H#endif#ifndef STDLIB_H#define STDLIB_H#endif#ifndef CONIO_H#define CONIO_H#endif 问题是,
我正在尝试创建一个头文件(包括我为AVL Trees编写的函数),但我有一个小问题和对包含警卫的语法的误解.

现在我的代码看起来像这样

#ifndef STDIO_H
#define STDIO_H
#endif
#ifndef STDLIB_H
#define STDLIB_H
#endif
#ifndef CONIO_H
#define CONIO_H
#endif

问题是,我认为它只包括< stdio.h>.当我尝试使用malloc时,它表示malloc未定义,即使我包含了stdlib.

根据http://www.cprogramming.com/reference/preprocessor/ifndef.html,如果我理解正确,ifndef检查是否定义了令牌,如果不是,它定义我在ifndef之后写的所有内容,直到#endif.所以我的代码应该工作.

是否定义了stdio?没有.所以定义它.万一.是stdlib定义的吗?没有.所以定义它.万一.是conio定义的吗?没有.所以定义它.万一.我没有看到问题.

如果我想添加这3个标题,那么正确的语法是什么?

解决方法

如果包含文件被多次包含,则包含防护用于防止双重定义.

标准包含文件具有必要的包含防护,因此您不需要包含防护装置.

你的代码应该是:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读