-5

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

この問題を解決するのを手伝ってください、ありがとう

4

1 に答える 1

2

ソースファイルfunc.cpp#include <cstdio>、使用する前#include <stdio.h>に宣言する必要があります。printf()では<cstdio>、 namespace を使用できるようになるため、行の後にstd記述するか、関数名のプレフィックスとして使用することができます。using namespace::std;#includestd::

も必要#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 */
于 2013-10-24T06:12:43.333 に答える