如何在包含文件中使用标准库函数

时间:2013-10-24 06:06:30

标签: c++

func.h

void in(){}

func.cpp

void in(){  
printf("HelloWorld");
}

的main.cpp

#include "iostream"
#include "func.h"
int main(){
    in();
}

error C3861: 'printf': identifier not found

帮我解决这个问题,谢谢

1 个答案:

答案 0 :(得分:2)

您的源文件func.cpp#include <cstdio>#include <stdio.h>在您使用之前声明printf()。使用<cstdio>,您可以使用命名空间std,因此您可以在using namespace::std;行后面写#include,或者可以使用std::作为前缀功能名称。

#include "func.h"中还需要func.cpp

func.cpp - 选项1

#include <cstdio>
#include "func.h"

void in()
{  
    std::printf("HelloWorld");
}

func.cpp - 选项2

#include <cstdio>
#include "func.h"
using namespace std;

void in()
{  
    printf("HelloWorld");
}

func.cpp - 选项3

#include <stdio.h>
#include "func.h"

void in()
{  
    printf("HelloWorld");
}

选项1可能是首选。

func.h

此外,标题应该声明函数,而不是定义它,除非你真的想要函数的空函数体 - 在这种情况下你根本不需要源文件func.cpp

void in();

通常,应该保护标头免受多重包含。这一次,它不会受到伤害,但学习好习惯是个好主意:

#ifndef FUNC_H_INCLUDED
#define FUNC_H_INCLUDED

void in();

#endif /* FUNC_H_INCLUDED */