> ...есть описание грамматики на 15 страниц. Только я не видел ни в gcc ни в clang чтобы её использовали в чистом виде (в смысле подавали в bison)
В gcc до 4й версии парсер С был на бизоне. См. gcc/c-parse.y в релизных архивах или gcc/c-parse.in в гите.
@merhalak например какой компилятор? Это место стандарта не менялось в C как минимум с C99 (возможно и раньше, но у меня нет ни K&R ни C89 под рукой), ни в С++ с С++98. Если компилятор ему не следует, это его проблемы, не?
> первые 6 из которых будут заполнены значениями, остальные 14 будут иметь случайные значения
> первые 5 из которых будут заполнены значениями, остальные 15 будут иметь случайные значения.
@risik с чего бы остальные были случайными? Остальные будут нулями, см. С99, 6.7.8:21:
If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, or fewer characters in a string literal used to initialize an array of known size than there are elements in the array, the remainder of the aggregate shall be initialized implicitly the same as objects that have static storage duration.
2. MSG_WAITALL не гарантирует получение полного объёма запрошенных данных. Обязательно проверяйте размер, который возвращает recv
3. Порядок байт -- будет тот же, что и на отправляющей стороне.
4. Данные принимаются: для потоковых сокетов (например TCP) из установленного соединения, для датаграммных сокетов -- в зависимости от того, был ли вызван connect, либо от любого отправителя, либо только от адреса/порта на который был выполнен connect. recvfrom не изменит множества сокетов, от которых можно получить сообщение, но вернёт для каждого полученного сообщения адрес его отправителя.
@EvilMan Если ещё подумать, то обычный алгоритм существенно опирается на упорядоченность размеров в исходном состоянии. Но, да -- решение получается похожим.
> Просто вы написали { const size_t _size; const int* const _ptr; }
Я не это написал. Я написал { const size_t _size; int* const _ptr; }. Указатель нельзя изменить, но значения на которые он указывает -- можно.
const применённый к агрегатному типу делает все не помеченные mutable поля const. Типы const {int i;} и {const int i;} разные, совпадают они лишь "по смыслу".
wait без параметров ожидает заверщения всех дочерних процессов. в качестве параметра wait может принимать идентификаторы процессов, но никак не временной интервал.
// reset the node maps
for(y=0;yupdatePriority(xFinish, yFinish);
pq[pqi].push(*n0);
/****** и эта запись -- мимо массива *******/
open_nodes_map[x][y]=n0->getPriority(); // mark it on the open nodes map
Последнее предложение непонятно. И совсем непонятно при чём тут gdb.
Если вы хотите в рантайме узнать, поддерживается ли фича процессором, используйте соответствующие механизмы: cpuid для x86, идентификатор архитектуры для ARM, ...
В gcc до 4й версии парсер С был на бизоне. См. gcc/c-parse.y в релизных архивах или gcc/c-parse.in в гите.