2017-10-31 6 views
1

MS Visual Studio 2017、Visual C++カテゴリの新しいWindowsコンソールアプリケーションプロジェクト。このコメントはありません#include <stdio.h>の上、下記の置かれているので、私はstdio.hがないデフォルトで含まれていることを信じるように傾斜しています、MS Visual Studio#はデフォルトでstdafx.hの#<stdio.h>を含むのはなぜですか?

// TODO: reference additional headers your program requires here 

#include <stdio.h> 
#include <tchar.h> 

そしてその下:デフォルトstdafx.hヘッダーには以下の行が含まおそらく#includeと思われるユーザーの便宜のために、何らかの理由で必要ですか? cstdioではなく、stdio.hが含まれているだけで、この解釈がサポートされているようです。

AMいいですか? #include <stdio.h>を安全に削除できますか? stdioから施設を示唆している含まれているこのヘッダとして、とにかく使用されている場合、明らかに間違っている

std::ios_base::sync_with_stdio(false); 

を:私のmain機能で非常に最初の行を読み取りますので、私は聞いていますのよ。

1)#include <stdio.h>という行を安全に削除できますか?stdafx.h

2)安全にstd::ios_base::sync_with_stdio(false)に電話をかけることはできますか?

3)tchar.hもデフォルトでここに関連していますか?

+3

新しいプロジェクトを開始するのに役立つテンプレートファイルです。あなたの都合に合わせて修正してください。そのテンプレートの品質は議論の余地があります。 – Jarod42

+1

それはおそらく誰もこのテンプレートを何十年も更新していないからでしょう...「TCHAR」は近代的なアプリケーションでもUnicodeを使うべきなのでかなり古い学校です - ANSIがWindows 95だったのは最後でした。おそらく彼らのコンソールアプリで '' printf''や '' wprintf''を使うでしょう。 –

答えて

5

はい、削除できます。

プリコンパイルされたヘッダーにstdafx.hを指定することさえできません。または、コンパイル済みヘッダーをまったく無効にすることもできます。

これは、使い始めるのに便利な例です。

0

あなた次第。そのあなたがそれを使用したい場合は、しかし、取り外す前に、それはこのMSDN about precompiled Header Files

に読んでは、この情報がお役に立てば幸い!

関連する問題