函数.h
void in(){}
函数cpp
void in(){
printf("HelloWorld");
}
主文件
#include "iostream"
#include "func.h"
int main(){
in();
}
error C3861: 'printf': identifier not found
帮我解决这个问题,谢谢
函数.h
void in(){}
函数cpp
void in(){
printf("HelloWorld");
}
主文件
#include "iostream"
#include "func.h"
int main(){
in();
}
error C3861: 'printf': identifier not found
帮我解决这个问题,谢谢
您的源文件func.cpp
应该#include <cstdio>
或可能在使用之前#include <stdio.h>
声明。printf()
使用<cstdio>
,您可以使用 namespace 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 */