int および *node (ノードはカスタム構造体) で条件演算子 (?) を使用しようとしています。ここに私のコードと結果のエラーがあります。
ノード:
struct node {
int num;
node *next;
};
条件付き実装:
void PrintNodes(node *head_p) {
int done = 0;
while (!done) {
PrintNodeData(head_p);
// if (head_p->next==NULL) {
// done++;
// } else {
// head_p++;
// }
((head_p->next==NULL) ? done : head_p)++;
}
}
条件ステートメントの上のコメントに同等のif...then...else
ステートメントがありますが、それを 1 行に短縮できるようにしたいだけです。
編集
エラー:
test.cc: In function ‘void PrintNodes(node*)’:
test.cc:28:36: error: operands to ?: have different types ‘int’ and ‘node*’
make: *** [all] Error 1