次のコード スニペットを見てください。2005 年に書かれたものですが、最新の gcc でコンパイルしています。
xln_merge_nodes_without_lindo(coeff, cand_node_array, match1_array, match2_array)
sm_matrix *coeff;
array_t *cand_node_array, *match1_array, *match2_array;
{
node_t *n1, *n2;
sm_row *row1, *row2;
static sm_row *xln_merge_find_neighbor_of_row1_with_minimum_neighbors();
while (TRUE) {
row1 = sm_shortest_row(coeff);
if (row1 == NIL (sm_row)) return;
n1 = array_fetch(node_t *, cand_node_array, row1->row_num);
row2 = xln_merge_find_neighbor_of_row1_with_minimum_neighbors(row1, coeff);
n2 = array_fetch(node_t *, cand_node_array, row2->row_num);
array_insert_last(node_t *, match1_array, n1);
array_insert_last(node_t *, match2_array, n2);
xln_merge_update_neighbor_info(coeff, row1, row2);
}
}
コンパイル中に、それは不平を言います、
xln_merge.c:299:18: error: invalid storage class for function ‘xln_merge_find_neighbor_of_row1_with_minimum_neighbors’
(xln_merger.c:299 は定義開始後の 3 行目です)。
3行目の関数定義は関数宣言のようです(ですね???)。プログラマーは関数ポインター (静的) を作成するつもりでしたか? または、c で時間の経過とともに一部の構文が変更されたのは、これがコンパイルされない理由です。
このコードはここsis
のパッケージからのものです