чем меньше ООП и больше структурщины, тем быстрее.
можно и так :)
If the value being stored in an object is accessed from another object
that overlaps in any way the storage of the first object, then the
overlap shall be exact and the two objects shall have the same type,
otherwise the behavior is undefined.
Давайте вы все-таки перестанете умничать
придираться к несуществующим мелочам
Можете подсказать как можно это сделать самым оптимальным путем?
unsigned char msg[2] = {...}
int b = msg[0] * 256 + msg[1].
Ну я подумал что четверка следует из предоставленного мною кода :)
Но заработало и с 2
Должно выдать 300
unsigned char a[4]
в моём ответе-- просто так написана? int i
за пределы for свешивается. Ну, М$, да, в своём духе. for (int i = 0; i < 10; ++i) { for_label:; cout << i << endl; } goto for_label;
loop.cpp: In function ‘int main()’:
loop.cpp:6:1: error: jump to label ‘for_label’ [-fpermissive]
for_label:;
^~~~~~~~~
loop.cpp:10:7: note: from here
goto for_label;
^~~~~~~~~
loop.cpp:5:11: note: skips initialization of ‘int i’
for (int i = 0; i < 10; ++i) {
^
почему ЭТО компилируется без предупреждения?!
Но так как люди эти часто злоупотребляли компилятор иногда игнорирует требования программиста.
Лучше использовать специальные макросы типа "горячий код" или наоборо "холодный" в спецификации они есть
лучше использовать какой нибудь void и максимально отказаться от обобшенного кода на си.
А разве LD в названии переменной, не указывает на GNU компоновщик - ld, и эта переменная содержит пути по которым он проверяет наличие библиотек?
4ainik, подразумевается, что вы знаете язык, на котором пишете. Потому что это поведение документировано стандартом, две главы (6.8 ambiguity resolution [stmt.ambig] и 8.2 ambiguity resolution [dcl.ambig.res]) с примерами посвящены именно этому.
Компиляторы тоже пишутся людьми, улучшения в качестве диагностики имеют хорошие шансы на то, чтобы быть принятыми в компилятор.