Пытаюсь скомпилировать часть Random Access из HPCC, но компилятор (intel c++ 9.1) ругается на строчку:
MPI_Status finish_statuses[NumProcs];
что само по себе не удивительно, т.к. NumProcs — это переменная типа int, т.е. мы пытаемся объявить динамический массив.
но при этом gcc под пингвином съедает всё без проблем.
Откомпилировал то же самое с помощью miniGW — без проблем, но нужно откомпилировать с помощью intelовского компилятора всё же =/
Наверное, это что-то очень простое, но у меня не получается с этим разобраться. Заранее спасибо за ответы.
Ты наткнулся на расширение языка, специфичное для gcc.
Оно хорошо описано в доках (6.14. Arrays of Variable Length)
Реализуется через неявное использование функции alloca — выделение памяти на стеке.
Обойти можно реализовав подобное поведение руками.
Re[2]: Разница между gcc (miniGW) и intel С compiler
Здравствуйте, Tonal-, Вы писали:
T>Ты наткнулся на расширение языка, специфичное для gcc. T>Оно хорошо описано в доках (6.14. Arrays of Variable Length) T>Реализуется через неявное использование функции alloca — выделение памяти на стеке. T>Обойти можно реализовав подобное поведение руками.
В MSVC такая фича тоже есть...
Re[3]: Разница между gcc (miniGW) и intel С compiler
Здравствуйте, n013e, Вы писали:
N>Здравствуйте, Garrrrr, Вы писали: G>>В MSVC такая фича тоже есть...
N>Arrays of Variable Lenght — это фишка, введённая в C99 N>В MSVC такой фичи нет: N>
N>Variable length arrays are not currently supported in Visual C++.
N>
N>отсюда N>В Intel C Compiler она есть, включается опцией /Qc99. Но при условии, что код Cишный, а не C++
Угу... этой отсутствующей в MSVC фишкой поломали кросскомпиляцию :-D
Re[5]: Разница между gcc (miniGW) и intel С compiler
Здравствуйте, cencio, Вы писали:
C>переписывается за 5 минут с помощью alloca
Да при чем тут это... Просто постулируется, что наш код во всех отношениях соответсвтвует стандарту (или с большой буквы?), а в стандарте этого нема.