我想创建一个头文件(其中包含我为AVL树编写的函数),但是我遇到了一些关于包含保护语法的问题和误解。
现在我的代码看起来像这样:
#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被定义了吗?没有。那就定义它。endif。stdlib被定义了吗?没有。那就定义它。endif。conio被定义了吗?没有。那就定义它。endif。我看不出问题出在哪里。
如果我想添加这3个头文件,正确的语法是什么?
#include
任何东西,所以我只能想象你得到了多少个“未声明函数 xxxx 返回int
”警告。 - WhozCraigconio.h
不是标准库之一,而其他两个是标准库。 - Wojtek Surowka