아래 코드는 "initializer 요소가 상수가 아닙니다"또는 gcc 및 clang에서 유사하게 컴파일되지 않습니다.const 포인터 값을 사용하여 const struct를 초기화하는 방법
z를 더 일정하게 만드는 방법이 있습니까? 이미 상수 문자에 대한 정적 상수 포인터입니다.
표준 규격에 위배되거나 표준에 위배 될 수 있습니까?
static const char * const z = "1234";
const struct {
const char * a;
} b = {z};
내 특정 유스 케이스, 나는 나쁜 구문은이
const char z[5] = n.x;
같은 것을 별칭을 정의 할 수 있다면 사실 나는 행복 할 것
const struct {
char x[5];
char y[5];
} n = {"12345","abcde"};
static const char * const z = n.x;
const struct {
const char * a;
} b = {z};
에 가까운하지만, ....
예제 코드는 C++에서 작동합니다. C를 조사 ... – bolov
불행히도 C와 C++ 모두에서 작동하는 코드가 필요합니다. C++에서 지원하지 않기 때문에 이미 구조체 초기화라는 이름을 생략해야했습니다. – Martin
http://stackoverflow.com/questions/21592494/initializer-element-is-not-constant-error-for-no-reason-in-linux-gcc-compilin – bolov