-5

函数.h

void in(){}

函数cpp

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

主文件

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

error C3861: 'printf': identifier not found

帮我解决这个问题,谢谢

4

1 回答 1

2

您的源文件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 可能是首选。

函数.h

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

void in();

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

#ifndef FUNC_H_INCLUDED
#define FUNC_H_INCLUDED

void in();

#endif /* FUNC_H_INCLUDED */
于 2013-10-24T06:12:43.333 回答