Вопросы по теме 'sequence-points'
Segfault с помощью strcmp
Я использую strcmp следующими способами
Передача имен массивов char[]
Передача указателей на строковые литералы, но второй результат приводит к ошибке seg. хотя я подтвердил, что указатели указывают на правильные строковые литералы, я не...
2098 просмотров
schedule
04.06.2022
Точка последовательности после оператора return?
В моем ответе на вопрос здесь Я объяснил, что происходит, когда постфикс ++ используется для глобальной переменной в той же строке, что и оператор return .
В информационном приложении C к C11 указано, что точка следования находится сразу после...
321 просмотров
schedule
29.11.2022
Индексирует ли новый элемент карты и имеет ли что-то, что читает его, назначенное ему неопределенное поведение или просто неуказанное?
После ответа на этот вопрос возник долгая дискуссия о том, является ли рассматриваемый код неопределенным поведением или нет. Вот код:
std::map<string, size_t> word_count;
word_count["a"] = word_count.count("a") == 0 ? 1 : 2;...
255 просмотров
schedule
01.05.2022
Точки последовательности и побочные эффекты в C
В этом C-FAQ рассказывается о точка последовательности ;
В Стандарте указано, что Между предыдущей и следующей точкой последовательности сохраненное значение объекта должно быть изменено не более одного раза при вычислении выражения. Кроме...
918 просмотров
schedule
10.04.2023
Точка последовательности && оператор
Для C++03 стандарт говорит, что между левым и правым операндом оператора && есть точка последовательности, так что все побочные эффекты левого оператора имеют место до того, как будет осуществлен доступ к правому оператору.
So
int i = 0;
if...
337 просмотров
schedule
16.11.2022
Последовательность в составном условном выражении
Оператор if в следующем примере взят из старого проекта, который я пытаюсь построить снова. Мне жаль, что это не проверяемый образец в том смысле, что он не воспроизводит ошибку, он сам по себе отлично компилируется.
enum S { };
struct R {...
77 просмотров
schedule
25.02.2023
операция над «i» может быть неопределенной
У меня есть этот код, чтобы взять строку формы bla_2 и разделить ее:
void separate(char* str, char* word, int* n) {
int i = 0;
while(str[i] != '_') {
word[i] = str[i++];
}
*n = str[++i] - '0';
}
Я получил:...
3288 просмотров
schedule
25.08.2023
Что делает стандарт C таким сложным для определения точки последовательности?
По моему мнению, с предварительным и почтовым приращением в C. A post-increment вступит в силу после утверждения.
Пример:
int num = 10;
int sum = num ++; //sum & num at this point is 10
printf("%d %d", sum, num); //we should get 10 11...
47 просмотров
schedule
21.06.2022
Порядок оценки для передачи аргументов функции — порядок операций для F1(int F2(int& x), int x)
Итак, я писал код ранее. В частности, это была строка:
EnterNode( FindNode( terrain_X, terrain_Y, travel_dir ), travel_dir );
Я заметил, что после тестирования моей программы происходит что-то странное. Значение, полученное внешней функцией,...
445 просмотров
schedule
04.11.2022
Какие флаги компиляции следует использовать, чтобы избежать ошибок времени выполнения
Только что узнал здесь , что -Wsequence-point флаг компиляции выдает предупреждение, когда код может вызывать UB. Я пробовал это с заявлением вроде
int x = 1;
int y = x+ ++x;
и это сработало очень хорошо. До сих пор я компилировал с...
587 просмотров
schedule
27.11.2022
Операнды сдвига упорядочены в C ++ 17
Я читал в C ++ 17 Standard $ 8.5.7.4:
Выражение E1 секвенировано перед выражением E2.
для операторов смены.
Также в правиле 19 cppreference говорится:
In a shift operator expression E1<<E2 and E1>>E2, every value...
444 просмотров
schedule
16.04.2022
Ассоциативность операторов с операторами «постфиксного декремента» и «логического И» в c
Отказ от ответственности: я не пишу код подобным образом, я просто пытаюсь понять, как работает язык c!!!!
Выход 12.
Это выражение (a-- == 10 && a-- == 9) оценивается слева направо, и a по-прежнему равно 10 в a-- == 10 , но a равно...
353 просмотров
schedule
26.10.2022
Будет ли отключение прерываний защищать энергонезависимую переменную или может произойти переупорядочение?
Предположим, INTENABLE - это регистр микроконтроллера, который разрешает / запрещает прерывания, и я объявил его где-то в моих библиотеках как изменчивую переменную, расположенную по соответствующему адресу. my_var - это некоторая переменная,...
473 просмотров
schedule
21.12.2021
Порядок оценки языка C
x+=x*=x Неопределенное поведение?
Может ли кто-нибудь объяснить это правило в порядке оценки ? Что такое «разовая оценка»? Что противоположно «единичной оценке»? # P1 #
152 просмотров
schedule
24.04.2022
Является ли (a = 1) = 2 неопределенным поведением в С++ 98?
Аналогичные коды, например (a+=1)%=7; , где a — переменная int .
Мы знаем, что оператор += или = не является точкой последовательности, поэтому у нас есть два побочных эффекта между двумя соседними точками последовательности. (здесь мы...
115 просмотров
schedule
10.10.2022
Связанные составные назначения с секвенированием С ++ 17 все еще не определены?
Изначально я привел более сложный пример, этот был предложен @n. 'местоимения' м. в теперь удаленном ответе. Но вопрос стал слишком длинным, смотрите историю редактирования, если вам интересно.
Имеет ли следующая программа четко определенное...
307 просмотров
schedule
22.11.2022