Ori*_*ber 3 c header include-guards include
我正在尝试创建一个头文件(包括我为AVL Trees编写的函数),但我有一个小问题和对包含警卫的语法的误解.
现在我的代码看起来像这样
#ifndef STDIO_H
#define STDIO_H
#endif
#ifndef STDLIB_H
#define STDLIB_H
#endif
#ifndef CONIO_H
#define CONIO_H
#endif
Run Code Online (Sandbox Code Playgroud)
问题是,我认为它只包括<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>
Run Code Online (Sandbox Code Playgroud)