4
3 진 연산자를 사용하여 구조 유형을 초기화 할 수없는 이유는 과 같은 기본 유형을 초기화하는 데 사용할 수있는 이유는 무엇입니까?3 진 연산자로 구조 초기화
예제 코드 :
#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 환영합니다. –
CL의 또 다른 용도. +1. – haccks