2

最近、GSMオーディオコーディングのソースコードを読んでいます。これらのコードは 1992 年以降に作成されたものです。

次のような奇妙なコードがいくつかあります。

main P2((ac, av), int ac, char ** av)

void Gsm_Coder P8((S,s,LARc,Nc,bc,Mc,xmaxc,xMc)

それらのコードは古い方法で使用されていますか? P2 または P8 の用途は何ですか?

4

1 に答える 1

1

これらは、括弧の後に型をリストした古いスタイルのコンパイラと互換性のあるコードを作成するマクロです。たとえば、次のようにP2拡張できます

main(int ac, char **av)

また

main(ac,av)
int ac;
char **av;

実行gcc -Eして、前処理された出力を確認します。

2とは、古いコンパイラの8プリプロセッサ マクロが可変数のパラメータを持つことができないため、パラメータ数ごとに個別のマクロが必要になるためです。

于 2013-10-23T14:00:41.677 に答える