Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

本日見かけた酷いコード12

タグ: C++ 酷いコード
class String : std::basic_string<char>
{
public:
    operator const char* () const;
};

String CreateVerboseName(const char*);

#if 0
const char HOGE[] = "hoge"
#else
#define HOGE CreateVerboseName("hoge")
#endif
void foo()
{
    char hoge[sizeof(HOGE)];
    sprintf(hoge, HOGE);

絶賛稼働中のシステムに含まれていたコード。

「関数foo()の追加」と「HOGEの定義変更」は、ほぼ同時期行われている。
おそらく、複数人による変更が嫌な具合に噛み合い、このような形になってしまったのだろう。

明らかに誤ったコードではあるが、 CreateVerboseName("hoge")sizeof(String) (VC8で32)文字未満の文字列しか返さないので、動作に支障はでていない。

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/186-4ec75e45
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。