2008年06月29日
Windows SDK で最も名前が長い定数・関数ベスト6
Cocoaで最も名前が長いメソッドベスト10 - kaisehのブログ によると、Cocoa で一番長いキーワードは50文字とのこと。
長さなら、Windows ヘッダファイルの方が負けないぜ、ということで、Windows SDK 6.0で調べてみました。
第1位
IIDENTITYAUTHORITY_DOES_TEXTUAL_DEFINITION_MATCH_ TEXTUAL_REFERENCE_FLAG_EXACT_MATCH_REQUIRED 文字数:92 所属ファイル:isolation.h
堂々の第1位は Cocoa にダブルスコア近い92文字の定数。「1行は80文字以内」というコーディング規約をあざ笑うかのような素晴らしい定数ですね。
TEXTUAL と MATCH という単語が2回ずつ登場するあたりが趣深いですね。
第2位
CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_ UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME 文字数:81 所属ファイル:WinCrypt.h
2位でも80文字越え。WinCrypt.h はこの他にも長い定数のオンパレードとなっております。
こちらの定数でも、PRE_FETCH が2度登場するという素敵な状態となっております。
第3位
CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_ UPDATE_PRE_FETCH_DIVISOR_DEFAULT 文字数:78 所属ファイル:WinCrypt.h
2位の定数の VALUE_NAME を DEFAULT に置き換えただけの定数です。
第4位
IWMSPublishingPointCurrentCounters_get_Outgoing DistributionAllocatedBandwidth 文字数:77 所属ファイル:wmsserver.h
やっと関数宣言の登場です。COM 関係はどうしても長くなりますね、はい。
第5位
CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_ PRE_FETCH_PERIOD_SECONDS_VALUE_NAME 文字数:77 所属ファイル:WinCrypt.h
貫禄の WinCrypt.h です。
第6位
PFN_WEBHOST_LISTENER_APPLICATION_POOL_CAN_ OPEN_NEW_LISTENER_CHANNEL_INSTANCE 文字数:76 所属ファイル:listeneradapter.h
実は、1位~5位までは Undocumented な定数・関数でした。ここにきて、やっと MSDN に記述がある定数が登場しました。IIS 7.0: WEBHOST_LISTENER_CALLBACKS Structure に書いてあります。よかったですね。
まとめ
Windows SDK は Cocoa よりきもい。
使った Perl スクリプトを一応掲載しておきます。
@list=glob('*.h'); %w; for my $fn(@list){ open(F,"<$fn"); $s=join("\n",<F>); my @match=($s=~/[A-Z0-9_]{25,}/ig); close F; for(@match){ $w{$_} = $fn if defined $_ } } @result = sort {length $b cmp length $a} keys %w; for(@result){ print $_ . "(" . $w{$_} . ")\n"; }