4
爲什麼三元運算符不能用於初始化結構類型,但它可用於初始化基本類型,如int?使用三元運算符對結構進行初始化
示例代碼:
#include <stdio.h>
#define ODD 1
int main(int argc, const char *argv[])
{
static struct pair_str {
int first;
int second;
} pair = (ODD) ? {1,3} : {2,4}; // ERROR
printf("pair %d %d\n", pair.first, pair.second);
int number = (ODD) ? 1 :2; // FINE
return 0;
}
編譯器錯誤:
/home/giuseppe/struct.c: In function ‘main’:
/home/giuseppe/struct.c:12:23: error: expected expression before ‘{’ token
/home/giuseppe/struct.c:12:29: error: expected expression before ‘:’ token
謝謝,這如果結構工作正常不是靜態的。爲什麼我不能使用靜態結構? –
@GiuseppePes不客氣。 – 2013-07-27 10:43:07
CL的另一種用途。 +1。 – haccks