Следующий код, похоже, скомпилирован.Можно ли использовать переменную в инициализаторе структуры в C?
typedef struct Test {
int i;
int j;
} Test;
int main() {
int i;
i = 0;
Test p = {i, 1};
printf("%d\n", p.i);
return 0;
}
Splint терпит неудачу с
example2.c:9:7: Parse Error. (For help on parse errors, see splint -help
parseerrors.
(Это линия Test p = {i, 1};
)
Является ли это незаконным C, или это ошибка в лубок?
(Я хочу, чтобы это сделать, потому что я хочу р быть const
, хотя неудача, кажется, происходит даже тогда, когда я удалить модификатор const
. Если я двигаю объявление и инициализацию i
на одной линии, проблема также, кажется, уходят.)
C99 [разрешает] (http://ideone.com/MmU9X9). – dasblinkenlight