古いソースコードではANSI C標準以前の関数宣言がある。
旧関数宣言
1 関数定義の引数の型が分離している
例
void foo(a, b, c)
int a;
int b;
int c;
{
/* 処理 */
}
2 関数宣言の引数は書かない(書かなくても良い?)
例
void foo();
何が便利(?)かというとこのような使い方
#define FLOAT_TYPE
/* old declaration */
#if defined (FLOAT_TYPE)
float
#else
int
#endif
add();
/* old definition */
#if defined (FLOAT_TYPE)
float
#else
int
#endif
add(a, b)
#if defined (FLOAT_TYPE)
float a;
float b;
#else
int a;
int b;
#endif
{
return a + b;
}
とこのようにすると、一つの関数で型を使い分けできます。
なぜ紹介したかというと、この形式を推奨するのではなく
昔の記述の読み方がわからない人向けに書きました。
私も始めて見た時何が書いてあるか分かりませんでした・・・