在include指令中使用尖括号和引号有什么区别?
#包括<文件名>#包括“文件名”
在include指令中使用尖括号和引号有什么区别?
#包括<文件名>#包括“文件名”
当前回答
简单的通用规则是使用尖括号来包含编译器附带的头文件。使用双引号包含任何其他头文件。大多数编译器都是这样做的。
1.9-头文件更详细地解释了预处理器指令。如果你是一个新手程序员,那么这个页面应该可以帮助你理解所有这些。我从这里学到了这一点,我一直在工作中遵循这一点。
其他回答
它确实:
"mypath/myfile" is short for ./mypath/myfile
具有是#include所在文件的目录和/或编译器的当前工作目录,和/或default_include_path
and
<mypath/myfile> is short for <defaultincludepaths>/mypath/myfile
如果./在<default_include_paths>中,则不会有任何区别。
如果mypath/myfile位于另一个include目录中,则行为未定义。
#include <filename>
当您想使用C/C++系统或编译器库的头文件时使用。这些库可以是stdio.h、string.h、math.h等。
#include "path-to-file/filename"
当您希望使用自己的自定义头文件(位于项目文件夹或其他位置)时使用。
有关预处理器和标头的详细信息。读取C-预处理器。
#include "filename" // User defined header
#include <filename> // Standard library header.
例子:
这里的文件名是Seller.h:
#ifndef SELLER_H // Header guard
#define SELLER_H // Header guard
#include <string>
#include <iostream>
#include <iomanip>
class Seller
{
private:
char name[31];
double sales_total;
public:
Seller();
Seller(char[], double);
char*getName();
#endif
在类实现中(例如,Seller.cpp,以及将使用文件Seller.h的其他文件中),现在应该包含用户定义的头,如下所示:
#include "Seller.h"
简单的通用规则是使用尖括号来包含编译器附带的头文件。使用双引号包含任何其他头文件。大多数编译器都是这样做的。
1.9-头文件更详细地解释了预处理器指令。如果你是一个新手程序员,那么这个页面应该可以帮助你理解所有这些。我从这里学到了这一点,我一直在工作中遵循这一点。
在C++中,以两种方式包含文件:
第一个是#include,它告诉告诉在预定义的默认位置查找文件。此位置通常是INCLUDE环境变量,表示包含文件的路径。
第二种类型是#include“filename”,它告诉预处理器首先在当前目录中查找文件,然后在用户设置的预定义位置查找文件。