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
帮我解决这个问题,谢谢
答案 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.cpp
。
void in();
通常,应该保护标头免受多重包含。这一次,它不会受到伤害,但学习好习惯是个好主意:
#ifndef FUNC_H_INCLUDED
#define FUNC_H_INCLUDED
void in();
#endif /* FUNC_H_INCLUDED */