質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

8167閲覧

エディタeclipseで#ifdef#endifの未処理部分を色強調、処理部分を強調なしに変更したい

karigurashi

総合スコア20

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/09/07 05:01

編集2018/09/14 11:42

#ifdef#endif文の非アクティブコードを色強調有効にしていますが、条件式が真の場合灰色になってしまい、処理が実行されているコードなのかわかりにくいので何とかしたいです。また、
別のファイルでは条件式が偽の時に色強調されています。何が原因が分かりません!

ファイル(F)→インポート(I)→一般→既存のプロジェクトをワークスペースからディレクトリごとインポートしています。

この場合、aaaの処理が実行される部分が灰色に色強調されてしまいます。

C言語

1yyy.h(ファイル名) 2#ifdef 1 3 #define aaa 4#endif 5 6xxx.c(ファイル名) 7#include yyy.h 8省略 9#ifdef aaa 10 //条件式が真の処理 11#else 12 //条件式が偽の処理 13#endif

改善する方法はあるでしょうか?
また、

eclipse Version: 4.8.0.です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

lang

1#ifdef 1 2 #define aaa 3#endif

この部分は

lang

1#if 1 2 #define aaa 3#endif

こうですか?

また
ウィンドウ>設定>一般>C/C++>エディター>非アクティブコードを強調表示
の設定はどうなっていますか?

投稿2018/09/13 06:01

ratmie

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karigurashi

2018/09/13 10:11

ヘッダーファイルには ```C言語 #ifdef 1 #define aaa #endif ``` と記述してあります。 非アクティブコードの強調表示設定はチェックを入れて有効にしてあります。 もともとプログラミング経験がなく 仕事の関係上ソフトウェア担当になりましたので多少の知識しかありません。 複数人で作ってるソースコードなので、ヘッダーファイル含め.c、.hファイルいくつもあり ログ確認用の♯ifdefがいくつも存在します。 そのため未処理のコードを色分けできるエディターを使用したのですが、真偽がうまく区別されてませんでした。 有効のコードをなにもしなくて、無効のコード又は処理しないコードを灰色にしたいです。 .cファイルを複数回経由してyyy.hヘッダーファイルをincludeすると非アクティブコードの強調の逆転が起こります
karigurashi

2018/09/17 00:06

訂正いたします。 ソースコードを確認したところ、ヘッダーファイルyyy.hの記述は #if 1 #define aaa #endif となっていました
guest

0

自己解決

ratmieさんありがとうございました。
自己解決することができました。

eclipseの設定
[一般]-[C++]-[エディタ]-[スケーラリビティ]の項目のスケーラリビティ・モード設定の
構文解析活性化中~~のチェックを外すことで解決いたしました。

これは予想ですが、原因はソースコードが膨大になりすぎているため非アクティブコードの色強調がうまく処理されていなかったのだと思います。

参照URL http://yutumemo.blogspot.com/2011/08/eclipse.html

また、スケーラリビティなどのチェックを外すデメリットなどが理解できていません。わかる方いましたらコメントで教えていただけると幸いです。

投稿2018/09/17 23:33

karigurashi

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

記載されているコードですと「条件式が真の場合の処理」は実行されていないと思うのですが、そちらの確認はできますでしょうか。

投稿2018/09/14 01:45

ratmie

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karigurashi

2018/09/14 11:44

製品の動きや、LOGからeclipseの 非アクティブコードで強調された部分(灰色になるところ)が処理されて実行しているのは確認できています。 上記の記載したコードの場合 「条件式が真の場合の処理」が実行されないのはなんでなのでしょう? また、ログを確認するとそこの処理を実行しているのは確認できました。 まだまだ未熟なところがあり、理解しきれていないので宜しければ教えてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問