2009-09-23 8 views
1

宣言はグローバルメンバー すなわち、ボイドFUNC(何とか)int型何とかとして表示されません、純粋なCを使用して、古い形式の関数2003 Visual Studioで、{...}VC++:非グローバルな古いスタイルの関数宣言?

これはメンバーのグローバルメンバーとして示しドロップダウン:

void func(int blah) 
{ 
    ... 
} 

これはコンパイルが、古いスタイルは、グローバル メンバーがドロップダウンに表示されません。

void func(blah) 
int blah; 
{ 
    ... 
} 

私は新しい「CAを使用しようとしています多くの従来のコードでは古いスタイルの関数パラメータを使用しているため、 認識されていない関数はグローバルメンバーとして表示されないため、 は 'Calling Graph'には表示されません。 。

「コールグラフ」分析プロセス 旧式の関数宣言を正しく行う方法はありますか?

+1

あなたの質問は? –

+4

彼は、「古いスタイル」の機能をCalling Graphによって認識して分析する方法についてアドバイスを求めていると思います。彼の質問に「?」がないからではありません。それは質問ではないので、彼は下降音に値するものではありません。 +1 –

+0

私は質問をdownvoteしませんでした。ただ、「質問」がやや曖昧である可能性があることを指摘したかったのです。 –

答えて

0

私は確かではありませんが、エンジンは正規表現を使用してルーチンシグネチャをトレースし、古いCスタイルは実装されていません。

1

多分古いスタイルの関数シグネチャを変更することを検討したいと思うかもしれません。それに問題はないはずです。

EDIT:ANSI-Cスタイルに古いスタイルの構文から、ソースファイルの自動変換のために

cprotoツールを見てみましょう。たぶんそれは、あなたがその方向に行くことを決めるなら、時間を節約できます。

これはドキュメントからの抜粋である:nは、例えば0から3まで 数であり、 は

関数定義を考慮生成関数プロトタイプのスタイルを設定

-fn

main (argc, argv) 
int argc; 
char *argv[]; 
{ 
} 

値が0の場合、プロトタイプは生成されません。 1に設定すると、出力は2の値を

int main(/*int argc, char *argv[]*/); 

、出力の形式を有する:

int main(int /*argc*/, char */*argv*/[]); 

デフォルト値は、フル機能のプロトタイプを生成し3です。

int main(int argc, char *argv[]); 
+0

残念ながら、45,000以上の関数宣言があるので、可能ならばそれを回避しようとしていました。 –