![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_16.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
#1です
どちらもダブルクォートですか。#2様の仰ることが正解なら話ここまでですが、私の経験上では、自身を再帰的にインクルードするような場合は記憶にないのでチョット気になります。
コンパイルスイッチで何かしらの処理を行うにしても、自身を再帰的に呼び出してってのは意味があるようには思えません。
単にトリッキーなことがしたいだけとかなら分かるのですが...
確認ですが、aaa.h自体はひとつしか存在しないのですか?別のパスにaaa.hが存在してたりしませんか?
> aaa.hで、また(2)、自分自身を#includeするのはなぜか
とあるのですが、実はMakefileの設定等で別のaaa.hをインクルードしてるってことはないですか?
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_16.png?5a7ff87)
No.4
- 回答日時:
#3です
> #include aaa.h (2)
> を削除しても動作に変化はありませんでした。
この情報は役に立たないです。
動作に影響ないのは、ファイル内に書かれたコードは使用されていないってだけの話ですよね。
今回の質問は、自分自身をインクルードするのはなぜかってことでしたよね。
ちなみに、#3で書いた「確認ですが~」に対しての回答は頂けませんか?
一応、試験的に再帰的にインクルードするコードを書いてビルドしたところ下記のエラーが出ました。
<ここから>
In file included from aaa.h:1,
from aaa.h:1,
from aaa.h:1,
from aaa.h:1,
from aaa.h:1,
: 省略
from aaa.h:1,
from aaa.h:1,
from aaa.h:1,
from aaa.h:1,
from aaa.h:1,
from main.c:1:
aaa.h:1:17: error: #include nested too deeply
<ここまで>
回答ありがとうございます。
話が私のレベルを越えた内容になってきました。
人のサンプルがどうあれ、自分で書くプログラムは
自分のレベルで自分にわかりやすく書きたいと思います。
No.2
- 回答日時:
インクルードファイルの再帰呼び出しはたまにあります。
無限回の再帰飛び出しを防ぐために
>#include aaa.h (2)
の前後に
#if ...
#endif
があるはずです。
----- main.c -----
#include "aaa.h"
----- aaa.h -----
#ifndef AAA
#define AAA 111
#include "aaa.h"
#undef AAA
#define AAA 222
#include "aaa.h"
#undef AAA
#else
;
;
;
#endif
回答ありがとうございます。
>#include aaa.h (2)
>の前後に
>#if ...
>#endif
>があるはずです。
ありませんでした。
また、
#include aaa.h (2)
をコメントアウトしても動作に変化ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
switch文のエラーについて
-
gccでコンパイル時のエラー
-
空ENTERの判別
-
C++ 平均値、最大値と最小値の...
-
構造体配列のvectorへの変換と...
-
C++でShowCursorを使いたい。
-
構文エラーが出ているのですが...
-
#defineの使い方について
-
指定した文字を削除したい
-
VC++ iostreamの不具合(?)
-
VxWorks 6.4ソケット接続につい...
-
VS2019でofstreamが未定義になる
-
snprintfが使用できない。
-
2重の(?)の#include
-
c++のvirtual関数および継承に...
-
構造体に決められた文字列を入...
-
プログラミング
-
opencvを使って画像比較
-
C言語からgnuplot呼び出し
-
atlbase.h と afxwin.hの同時定義
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラーが出ているのですが...
-
switch文のエラーについて
-
enumの値から定義名を文字列化...
-
VC++で文字列から任意の文字を...
-
なぜ、C++の標準ヘッダをインク...
-
空ENTERの判別
-
std::wstringのメモリリークに...
-
C言語からgnuplot呼び出し
-
リモートデスクトップの接続元I...
-
JPEGやPNGが読めるLoadImage関数
-
このプログラミング誰か教えて...
-
プログラミング
-
#include "fstream.h"
-
C++での <iostream.h>と<iostre...
-
std::map の const 修飾について
-
構造体配列のvectorへの変換と...
-
#defineの使い方について
-
VS2019でofstreamが未定義になる
-
指定した文字を削除したい
-
構造体に決められた文字列を入...
おすすめ情報