C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。
UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。
定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。
C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。
FreeBSDは、Unix系のオープンソースのOSです。PC/AT互換機用ですが、他のプラットフォームにも移植されています。優れたネットワーク・セキュリティ・ストレージ機能で人気のOSです。ソースコードと共に無償で公開されており、多くの コミュニティによって長年に渡って開発されています。
Q&A
2回答
474閲覧
総合スコア0
0グッド
0クリップ
投稿2020/07/23 15:45
0
毎回必要な箇所に#ifdef~#endifを書くのが煩雑なので、それ自体を#define定義で置き換える書き方を教えてください
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
2020/07/23 15:52
2020/07/23 18:23
2020/07/23 18:43
2020/07/23 23:39
2020/07/24 02:52
2020/07/24 08:36
回答2件
ifdefをマクロで置き換えるというのはやめときましょう。 後でコードを読む人間にとっては混乱のもとにしかなりません
まあ、そのコードはあなただけしか見ないというなら、どうぞご自由に、ってとこですが。
投稿2020/07/24 00:05
総合スコア88026
いまいち問題が把握てきてない気がしますが、 以下のような感じで、#ifdefの分岐でそれぞれ別の#define定義するのではダメということですか?
C1#ifdef USE_HOGE 2 #define SET_VALUE(X) (HOGE+X) 3#else 4 #define SET_VALUE(X) (X) 5#endif
C
1#ifdef USE_HOGE 2 #define SET_VALUE(X) (HOGE+X) 3#else 4 #define SET_VALUE(X) (X) 5#endif
もし#ifdefの条件に合致しない場合は置き換え後に何も展開しないという書き方も出来ます。
C1#ifdef USE_HOGE 2 #define SET_VALUE(X) (HOGE+X) 3#else 4 #define SET_VALUE(X) 5#endif
1#ifdef USE_HOGE 2 #define SET_VALUE(X) (HOGE+X) 3#else 4 #define SET_VALUE(X) 5#endif
投稿2020/07/23 15:58
総合スコア1248
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.36%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
#define マクロ について