1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

プログラムの引数と定数マクロ

Posted at

プログラムの修正

色々なことに関してプログラムの修正は必要になると思われます。特に、関数の引数とかは以下の場合によく変更することが多いと思われます。

  • ほかの関数へ値/文字列を渡したい
  • 新たに変数を追加して処理する必要が増えた
  • 処理がいらなくなって引数を減らす必要がある

その際、修正するプログラムをまとめて変更というのは、ほかの関数の影響もあるためヒューマンエラーを起こしてしまうことがあります。それに対する策を私なりの視点で書いてみます。

定数マクロ

この言葉自体を聞くこと自体は少ないかもしれませんが、何回か使用したことがある人は多いと思います。具体例は以下のような感じです。

example.cpp
#define N 500

保存するデータ数やある条件に対する値をして用いられるプログラマが設定できる値ですね。プログラマが独自の名前を設定できるため、直感的な理解ができるのが利点だと思います。

プログラムの仕様と定数マクロの関係

プログラムの修正と定数マクロについてなにが関係しているのかが疑問に浮かぶ人が多くいると思います。処理に対しては関係ありませんが、修正する際によく必要になると思います。私の場合は以下の例を使用します。処理のイメージなのでだいぶ省略しています。

example.cpp
#include <iostream>
#define ENV 1
...
#if ENV == 1
func(int n1, int n2, int n3){
...
}
#elif ENV != 1
func(int n1, int n2){
...
}
#endif

上記のように定数マクロを設定することによって、処理する内容、箇所を設定することができます。この場合は定数マクロENVが1の場合は#if内の処理、そうでない場合は#elif内の処理が適用されます。
使用するエディタによっては処理されない部分は別の色で表示されたりといったこともあるので、もし必要がなくなった場合はその部分を削除すれば何ごろもなかったかのように修正ができます。

終わりに

Qiitaに記事を書くことが初めてで、自分が使っている点について記事にしてみました。これからは独自の視点を踏まえたうえで記事をかけるよう精進いたします。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?