A B();
, то ты не переменную B
с типом A
декларируешь, не что-то там еще. Ты декларируешь функцию B
, которая не принимает никаких аргументов, но по значению возвращает объекта типа A
.void logic();
- значит ты декларируешь функцию без входных аргументов и возвращаемого значения.logic();
. Даже набор русских букв в оперативной памяти на разных процессорах будет выглядеть по -разному
Это даже мне (а я джун) сложно читать.
Но, очень много воды.
Если ты все еще настаиваешь, что эти статьи нужны, то укажи конкретную статью и конкретную цитату, которая даст понимание конкретной вещи
В теле программы, над функцией main
Ну если я правильно понимаю то не const, потому что после инциализации структуры я хочу изменять её элементы
const
в этом месте.char
- значение можно менять.const char
- значение нельзя менять.char*
- указатель, который можно менять, на значение, которое можно менять.const char*
- указатель, который можно менять, на значение, которое нельзя менять.char* const
- указатель, который нельзя менять, на значение, которое можно менять.const char* const
- указатель, который нельзя менять, на значение, которое нельзя менять.const char* const* const
.const char*
. Да и уже просто по смутному смыслу твоих действий в коде, ты не хочешь изменять символы в строке, ты хочешь только указатели на сроки менять. main
сделать.int main() {
wifi.access[0][0] = ssid;
wifi.access[0][1] = password;
// ...
}
wifi
?wifi.access[0] = { ssid, password };
?Wifi
как агрегатную структуру. Почему в полях должен быть именно массив? Почему тип элементов должен быть именно char*
, а не const char*
?char*
, а не std::string
? ему придется взять 4 байта по адресу &a
struct decoratedblock{
char a;
char zero[1];
char b;
char zero[1];
char* c;
};
struct decoratedblock{
char a;
char b;
char zero[2];
char* c;
};
bool
неявно приводится к int
? И в случае с false
ноль все еще остается литералом, который может трактоваться как NULL
по причинам совместимости.
glFlush
ты говоришь конвейеру форсировать выполнение всех запланированных команд.Сама эта функция не синхронизирует вызывающий поток с фактом исчерпания буферов конвейера.
Вызов
glFlush
является хорошим тоном в ряде случаев. Однако, в документации GLUT сказано чтоglutSwapBuffers
самостоятельно делает вызовglFlush
.Поэтому для тебя этот вызов является избыточным.
С другой стороны, если ты не используешь двойную буферизацию, то и
glutSwapBuffers
тебе не нужен. В этом случае достаточно только вызоваglFlush
.