C ディレクティブ 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(#include)
(#include)
 
56行: 56行:
  
 
具体的には以下の優先順序になる。
 
具体的には以下の優先順序になる。
 +
 +
 +
 +
 +
 +
'''” ”2重引用符'''
 +
:#<nowiki>#</nowiki>includeディレクティブが記述されたファイルの置かれているディレクトリ内、相対パスがある場合はファイルの置かれているディレクトリからの相対パス内。相対パスに関する扱いは以降も同じなので省略。
 +
:#<nowiki>#</nowiki>includeディレクティブによって最後に開かれたファイルが優先されて使われ、ディレクトリの検索は読み込みをしたファイルが置かれている親ディレクトリ。なければ更に読み込みをしたファイルが更に#includeディレクティブによって読み込まれていたなら、読み込みをした親ディレクトリ(親の親)と遡っていく。
 +
:#/I コンパイルオプションで指定されているディレクトリ
 +
:#環境変数INCLUDEで指定されたディレクトリ
 +
 +
 +
'''<nowiki><</nowiki> <nowiki>></nowiki>山カッコ'''
 +
:#/I コンパイルオプションで指定されているディレクトリ
 +
:#環境変数INCLUDEで指定されたディレクトリ
  
  
 
 よく使われていたインクルードの宣言は#include <stdio.h>で、C++11という標準規格が制定された2011年くらいまでは、この方法でした。C++11以降はstdioに変わる新しいヘッダファイルcstdioに置き換わっています。VisualStudio2012あたりからcstdioが使われ始めています。他にも主要なヘッダファイルは先頭にcがついて、後ろの.hがないヘッダファイルに置き換わっています。VisualStudio2019ではC++20までの標準規格規格に対応しつつあり、メニュー{デバッグ}&gt;{(プロジェクト名)のデバッグ}で表示されるダイアログの左側ツリーから全般を選択したときに表示される{言語の標準規格の設定}でどの規格を使うかが設定できます。既定ではC++14になっています。C++14の設定でもC++17やC++20の一部の機能は使えます。つまり、VS2019ではもうとっくにC++11準拠なので、cstdioを使った方が良いという感じです。他のコンパイラでもそろそろ、cstdioが対応されていると思います。
 
 よく使われていたインクルードの宣言は#include <stdio.h>で、C++11という標準規格が制定された2011年くらいまでは、この方法でした。C++11以降はstdioに変わる新しいヘッダファイルcstdioに置き換わっています。VisualStudio2012あたりからcstdioが使われ始めています。他にも主要なヘッダファイルは先頭にcがついて、後ろの.hがないヘッダファイルに置き換わっています。VisualStudio2019ではC++20までの標準規格規格に対応しつつあり、メニュー{デバッグ}&gt;{(プロジェクト名)のデバッグ}で表示されるダイアログの左側ツリーから全般を選択したときに表示される{言語の標準規格の設定}でどの規格を使うかが設定できます。既定ではC++14になっています。C++14の設定でもC++17やC++20の一部の機能は使えます。つまり、VS2019ではもうとっくにC++11準拠なので、cstdioを使った方が良いという感じです。他のコンパイラでもそろそろ、cstdioが対応されていると思います。
 +
  
 
標準ヘッダファイルが新しくなったモノ一覧
 
標準ヘッダファイルが新しくなったモノ一覧
89行: 105行:
  
  
 
+
 incluedeファイルの入れ子は10レベルまでとなっているので、あまり階層(呼び出しの呼び出しの呼び出し…のような感じ)が深くならないようにディレクティブによるヘッダの呼び出しをするように組み込みましょう。絶対パスを指定した場合はその他のディレクトリは検索しないことになっていますので、次々と検索されるのを防ぐ必要がある場合には絶対パスが利用できます。但し、絶対パスにした場合、第三者にプログラムを再利用してもらう場合の配慮が必要になりますので、用途に応じた対応が必要になります。あえて絶対パスにして、自分以外のPCでは簡単にコンパイルされないようにする嫌がらせも可能です。原因がわからない人には使えないという試練を与えるドラマでいうところのなんだその変な胡散臭い試練はって奴になります。
'''” ”2重引用符'''
+
:#<nowiki>#</nowiki>includeディレクティブが記述されたファイルの置かれているディレクトリ内、相対パスがある場合はファイルの置かれているディレクトリからの相対パス内。相対パスに関する扱いは以降も同じなので省略。
+
:#<nowiki>#</nowiki>includeディレクティブによって最後に開かれたファイルが優先されて使われ、ディレクトリの検索は読み込みをしたファイルが置かれている親ディレクトリ。なければ更に読み込みをしたファイルが更に#includeディレクティブによって読み込まれていたなら、読み込みをした親ディレクトリ(親の親)と遡っていく。
+
:#/I コンパイルオプションで指定されているディレクトリ
+
:#環境変数INCLUDEで指定されたディレクトリ
+
 
+
 
+
'''<nowiki><</nowiki> <nowiki>></nowiki>山カッコ'''
+
:#/I コンパイルオプションで指定されているディレクトリ
+
:#環境変数INCLUDEで指定されたディレクトリ
+
 
+
 
+
incluedeファイルの入れ子は10レベルまでとなっているので、あまり階層(呼び出しの呼び出しの呼び出し…のような感じ)が深くならないようにディレクティブによるヘッダの呼び出しをするように組み込みましょう。絶対パスを指定した場合はその他のディレクトリは検索しないことになっていますので、次々と検索されるのを防ぐ必要がある場合には絶対パスが利用できます。但し、絶対パスにした場合、第三者にプログラムを再利用してもらう場合の配慮が必要になりますので、用途に応じた対応が必要になります。あえて絶対パスにして、自分以外のPCでは簡単にコンパイルされないようにする嫌がらせも可能です。原因がわからない人には使えないという試練を与えるドラマでいうところのなんだその変な胡散臭い試練はって奴になります。
+
  
  

2020年7月15日 (水) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス