C ディレクティブ 新しいページはコチラ
提供: yonewiki
(→#include) |
|||
1行: | 1行: | ||
+ | [[C PlusPlus#Cにもあった技術|C++]]へ戻る | ||
+ | |||
+ | |||
※このページではC言語にも存在していたという意味で記事タイトルがC ディレクティブになっていますが、<br /> | ※このページではC言語にも存在していたという意味で記事タイトルがC ディレクティブになっていますが、<br /> | ||
[[C PlusPlus|C++]]でも同様です。[[C PlusPlus|C++]]だけの機能がある場合は明記します。<br /> | [[C PlusPlus|C++]]でも同様です。[[C PlusPlus|C++]]だけの機能がある場合は明記します。<br /> | ||
53行: | 56行: | ||
具体的には以下の優先順序になる。 | 具体的には以下の優先順序になる。 | ||
+ | |||
+ | |||
+ | |||
67行: | 73行: | ||
− | + | よく使われていたインクルードの宣言は#include <stdio.h>で、C++11という標準規格が制定された2011年くらいまでは、この方法でした。C++11以降はstdioに変わる新しいヘッダファイルcstdioに置き換わっています。VisualStudio2012あたりからcstdioが使われ始めています。他にも主要なヘッダファイルは先頭にcがついて、後ろの.hがないヘッダファイルに置き換わっています。VisualStudio2019ではC++20までの標準規格規格に対応しつつあり、メニュー{デバッグ}>{(プロジェクト名)のデバッグ}で表示されるダイアログの左側ツリーから全般を選択したときに表示される{言語の標準規格の設定}でどの規格を使うかが設定できます。既定ではC++14になっています。C++14の設定でもC++17やC++20の一部の機能は使えます。つまり、VS2019ではもうとっくにC++11準拠なので、cstdioを使った方が良いという感じです。他のコンパイラでもそろそろ、cstdioが対応されていると思います。 | |
+ | |||
+ | |||
+ | 標準ヘッダファイルが新しくなったモノ一覧 | ||
+ | *<cassert> | ||
+ | *<ccomplex> | ||
+ | *<cctype> | ||
+ | *<cerrno> | ||
+ | *<cfenv> | ||
+ | *<cfloat> | ||
+ | *<cinttypes> | ||
+ | *<ciso646> | ||
+ | *<climits> | ||
+ | *<clocale> | ||
+ | *<cmath> | ||
+ | *<csetjmp> | ||
+ | *<csignal> | ||
+ | *<cstdalign> | ||
+ | *<cstdarg> | ||
+ | *<cstdbool> | ||
+ | *<cstddef> | ||
+ | *<cstdint> | ||
+ | *<'''cstdio'''> | ||
+ | *<cstdlib> | ||
+ | *<cstring> | ||
+ | *<ctgmath> | ||
+ | *<ctime> | ||
+ | *<cuchar> | ||
+ | *<cwchar> | ||
+ | *<cwctype> | ||
+ | |||
+ | |||
+ | incluedeファイルの入れ子は10レベルまでとなっているので、あまり階層(呼び出しの呼び出しの呼び出し…のような感じ)が深くならないようにディレクティブによるヘッダの呼び出しをするように組み込みましょう。絶対パスを指定した場合はその他のディレクトリは検索しないことになっていますので、次々と検索されるのを防ぐ必要がある場合には絶対パスが利用できます。但し、絶対パスにした場合、第三者にプログラムを再利用してもらう場合の配慮が必要になりますので、用途に応じた対応が必要になります。あえて絶対パスにして、自分以外のPCでは簡単にコンパイルされないようにする嫌がらせも可能です。原因がわからない人には使えないという試練を与えるドラマでいうところのなんだその変な胡散臭い試練はって奴になります。 | ||
74行: | 112行: | ||
インクルードファイル名が重複する場合には、このあたりの優先度を理解してインクルードパスの指定をきっちりとしてやることが大事になってきます。 | インクルードファイル名が重複する場合には、このあたりの優先度を理解してインクルードパスの指定をきっちりとしてやることが大事になってきます。 | ||
− | |||
=='''<nowiki>#</nowiki>using'''== | =='''<nowiki>#</nowiki>using'''== | ||
255行: | 292行: | ||
詳細な説明は上記の個別記事の項目を参照して下さい。 | 詳細な説明は上記の個別記事の項目を参照して下さい。 | ||
+ | |||
+ | |||
+ | [[C PlusPlus#Cにもあった技術|C++]]へ戻る |