头文件将不会编译到我的主测试程序中。为什么会这样呢?我在线上看过,但没有找到为什么会这样的简单原因。我已经尝试了几个#ifndef#define,但仍然不确定为什么该文件不包含在我的测试程序中。

下面是尝试编译测试程序时收到的错误消息。这与头文件有关,但我不确定如何解决此简单问题。奇怪的是,我以前使用过C ++,并且不记得在头文件中遇到了这种麻烦。

错误:


  错误1错误C2015:常量c:\ users \ itpr13266 \ desktop \ c ++ \ testproject \ testproject \ testproject.cpp中的字符太多10 1 TestProject
  
  错误2错误C2006:'#include':期望的文件名,找到'常量'c:\ users \ itpr13266 \ desktop \ c ++ \ testproject \ testproject \ testproject.cpp 10 1 TestProject
  
  错误3错误C1083:无法打开包含文件:'':没有这样的文件或目录c:\ users \ itpr13266 \ desktop \ c ++ \ testproject \ testproject \ testproject.cpp 10 1 TestProject




#include "stdafx.h"
#include "iostream"
#include <iostream>
#include <fstream>
#include <math.h>
#include <iostream>

#ifndef MYDATESTRUCTURES_H
#define MYDATESTRUCTURES_H
    #include'myDataStructures.h' <-- name of my include file
#endif

using namespace std;

#define MY_NAME "Alex"

void f(int);
void DoSome(int, char);

enum color  { red, green, blue };
enum color2 { r, g=5, b };

class CVector {
  public:
    int x,y;
    CVector () {}
    CVector (int a, int b) : x(a), y(b) {}

    void printVector()
    {
        std::cout << "X--> " << x << std::endl;
        std::cout << "Y--> " << y << std::endl;
    }
};

CVector operator+ (const CVector& lhs, const CVector& rhs) {
  CVector temp;
  temp.x = lhs.x + rhs.x;
  temp.y = lhs.y + rhs.y;
  return temp;
}

template<typename T>
void f(T s)
{
    std::cout << s << '\n';
}

template<typename P, typename N>
void DoSome(P a, N b)
{
     std::cout << "P--> " << a << '\n';
     std::cout << "N--> " << b << '\n';
}

void testMath()
{
    int result = ceil(2.3) - cos(.2) + sin(8.0) + abs(3.44);
    cos(4.1);
}

void testStorageTypes()
{
   int a;
   register int b;
   extern int c;
   static int y;
}

color temp = blue;
color2 temp2 = r;

int _tmain(int argc, _TCHAR* argv[])
{
    std::getchar();
    return 0;
}


代码(头文件)

#include <iostream>

int myAdd1(int, int);
int myAdd2(int, int, int, int, int);

struct myFirst1
{
}

struct myFirst2
{
}

int myAdd1(int x, int y)
{
    return x + y;
}

int myAdd2(int x, int y, int z, int m, int y)
{
    return x + y;
}

最佳答案

这行无效:

#include'myDataStructures.h' <-- name of my include file


在C / C ++中,单引号用于引用字符文字,而不是字符串文字。您需要使用双引号:

#include "myDataStructures.h"


错误消息的帮助程度稍差,因为实际上可能有一个multi-character constant, but its value is implementation-defined,使得它们的使用不是很方便,因此很少见。

关于c++ - 为什么我的#include文件无法编译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22644884/

10-09 03:40