将函数分离到C中的另一个源文件时出错

时间:2016-11-25 16:52:10

标签: c++

我有一个简单的项目:

method.h:

#pragma once
#ifdef _METHOD_
#define _METHOD_

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

int plus(int a, int b);

#endif // _METHOD_

method.cpp:

#include "method.h"

int plus(int a, int b)
{
    return a+b;
}

Source.cpp:

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

#include "method.h"

void main()
{
    int a = plus(4, 5);
    printf("%d",a);

    printf("\n");
    _getch();
}

但是当我构建项目时,会发生错误: enter image description here

我是C编程的新手。 对我的语法错误感到抱歉

2 个答案:

答案 0 :(得分:3)

删除

#ifdef METHOD 
#define METHOD 

因为#pragma once做同样的事情,如果你想使用警卫,它应该是

#ifndef ....

#ifdef _METHOD_将忽略标题文件,因为您永远不会定义&#34; _METHOD_&#34;

更新#1

根据#pragma once上的MSDN;

  

指定文件将被包含(打开)仅一次   编译源代码文件时的编译器。

答案 1 :(得分:1)

首先,改变&#34; #ifdef METHOD &#34;在你的头文件中&#34; #ifndef METHOD &#34;