00hid 2017-05-20 10:03:14

[C] 既存のコードを極力残したかったらしい。 このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

特別仕様版で関数の機能変えたかったみたいです。 そんでもって、それには引数の変更も必要だったようです。

無駄にコードが増えてく

/*プロトタイプ宣言省略*/

/*関数hogehoge*/
#ifndef SPECIAL
int hogehoge( int x, int y )
#else
int hogehoge( int x, int y, int z  )
#endif
{

  /*なんかやる*/

#ifdef SPECIAL
  /*z使って何かやる*/
#endif

  /*なんかやる*/

  return 何か;
}

/*hogehoge編集前からあったhogehoge呼び出し箇所*/
int piyopiyo( void )
{
  int ret;

  /* hogehoge変更者が直してる */
#ifndef SPECIAL
  ret = hogehoge( 1, 2 );
#else
  ret = hogehoge( 1, 2, 3 );
#endif
 
 return 何か;
}


/* hogehoge変更後、hogehoge呼び出しの面倒さに気づいた人が作ったラッパー 
 似たようなやつでマクロ置換版もあったり*/
int hogehoge2( int x, int y, int z  )
{
#ifndef SPECIAL
  return hogehoge( x, y );
#else
  return hogehoge( x, y, z );
#endif
}

/*hogehoge編集後に追加された呼び出し箇所*/
int piyopiyo2( void )
{
  int ret;
  
  ret = hogehoge2( 1, 2, 3);

  return 何か;
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント

まだコメントがありません。最初にコメントを残しませんか?

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] [PL/SQL]自動生成?いいえ、手書き...

このエントリーをはてなブックマークに追加

処理本体はあえて除外したくなるほどの衝撃...

PROCEDURE my_annonymous_arguments (
   ...

鑑賞する »

[C++] constとは一体…

このエントリーをはてなブックマークに追加

constの意味あるの…?

class Hoge
{
private:
  // メンバ変数は数百ある...

鑑賞する »

[C] 動くんだ・・

このエントリーをはてなブックマークに追加

そら、文法的に間違ってはいないよ。でもさ...

if (foo == x) switch (foo) {
 default:
...

鑑賞する »