Вопросы по теме 'sequence-points'

Что не так с этим исправлением блокировки с двойной проверкой?
Итак, я видел много статей, в которых утверждается, что в C ++ блокировка с двойной проверкой, обычно используемая для предотвращения попыток нескольких потоков инициализировать лениво созданный синглтон, не работает. Нормальный код блокировки с...
2317 просмотров

Является ли *p = ++(*q) неопределенным, когда p и q указывают на один и тот же объект?
прочитав о точках последовательности, я узнал, что i = ++i не определено. Итак, как насчет этого кода: int i; int *p = &i; int *q = &i; *p = ++(*q); // that should also be undefined right? Допустим, инициализация p и q...
628 просмотров

точки последовательности в c
Точка последовательности в императивном программировании определяет любую точку выполнения компьютерной программы, в которой гарантируется, что все побочные эффекты предыдущих вычислений будут выполнены, а побочные эффекты последующих вычислений...
9800 просмотров
schedule 21.07.2023

Есть ли в этой программе проблемы с точками последовательности?
#include<stdio.h> int main() { int i=7,j; j=(i++,++i,j*i); return 0; } j=(i++,++i,j*i); правильно ли это определено? Позвольте мне развеять мои сомнения.
208 просмотров
schedule 29.07.2022

точки последовательности в java
Существует ли гарантированная последовательность выполнения следующего java-кода: int i = getA() + getB(); Всегда ли getA() выполняется перед getB() , как и ожидал бы любой обычный человек?
554 просмотров
schedule 03.05.2023

Точки последовательности и цепочка методов
Следующее выражение часто используется для демонстрации неуказанного поведения undefined : f() + g() Если f() и g() имеют побочные эффекты для какого-либо общего объекта, тогда поведение undefined не указано, поскольку порядок...
959 просмотров
schedule 06.02.2022

Является ли запятая в списке переменных точкой последовательности?
В следующем типе кода существует ли точка последовательности между каждой конструкцией переменной или результат не определен? int a = 0; int b = a++, c = a++; Мне не удалось найти в стандарте конкретную ссылку на точку последовательности...
1274 просмотров
schedule 09.03.2023

Откуда берутся точки последовательности?
Я знаю, что писать что-то вроде ++a = a++; Не только нечитаем, но и нарушает точки последовательности c/c++. Откуда берутся эти ограничения? Как можно увидеть эти «проблемы», прежде чем найти их как ошибки?
2442 просмотров
schedule 02.06.2022

Существует ли точка последовательности между вызовом функции, возвращающей объект, и вызовом метода для этого объекта?
Если я напишу f(x)->g(args, ...) , могу ли я полагаться на точку следования после f(x) перед оценкой args, ... ? Я вижу аргументы в обоих направлениях: §1.9.17 «При вызове функции (независимо от того, является ли функция встроенной)...
860 просмотров

Что-то вроде for(i=1;i‹=10;printf(%d\n";i),i++) допустимо и не содержит UB в C?
Являются ли следующие два блока кода одинаковыми и достигают одной и той же цели? Когда я запускаю программу, она отображает то же самое, но я был бы признателен за подробное объяснение. for(i=1;i<=10;i++) { printf("%d\n",i); } а...
1886 просмотров
schedule 23.10.2022

Есть ли точки последовательности в выражении a^=b^=a^=b или оно не определено?
Якобы «умный» (но на самом деле неэффективный) способ замены двух целочисленных переменных вместо использования временного хранилища часто включает в себя эту строку: int a = 10; int b = 42; a ^= b ^= a ^= b; /*Here*/ printf("a=%d, b=%d\n", a,...
644 просмотров

Может ли (f(x))+g(y) сначала вызвать f(x) в C++?
И может ли f(x)+(g(y)) сначала позвонить g(y) ? Я знаю, что порядок в выражении во многих случаях не определен, но в этом случае работают скобки?
404 просмотров
schedule 02.05.2022

Точка последовательности в операторах присваивания
Возьмем, к примеру, конкретный составной оператор присваивания ^= . Эта страница переполнения стека говорит изменение левого операнда, возможно, не было выполнено после оценки ^= , что делает поведение кода a ^= b ^= a ^= b неопределенным....
267 просмотров

Разъяснение предупреждения о точке последовательности
Я новичок в C. Когда я пытаюсь запустить следующий код: #include <stdio.h> int main(void) { int a = 3, b; b = printf("%d %d", a, a++); a = printf(" %d", b); printf(" %d", a); return 0; } Он показывает мне:...
2749 просмотров
schedule 27.10.2022

точка следования и побочные эффекты
Согласно определению точки следования, точки следования — это « указанные точки в последовательности выполнения, называемые точками следования, все побочные эффекты предыдущих оценок гарантированно будут завершены » Таким образом, в приведенной...
207 просмотров
schedule 27.02.2024

Неопределенное поведение, или: есть ли в Swift точки следования?
В C/C++ второй оператор в int i = 0; int j = i++ + i++ + ++i; вызывает оба неопределенное поведение , поскольку порядок вычисления операндов не указан, и неопределенное поведение , потому что побочные эффекты одного и того же объекта...
460 просмотров

Почему этот код печатает 1 2 2, а не ожидаемое 3 3 1?
Примечание: это самоконтроль и более заметный таргетинг на ошибочную информацию, продвигаемую в книге «Позвольте нам». Также, пожалуйста, сохраните c ++ вне обсуждения, этот вопрос касается C . Я читаю книгу Яшванта Канеткара «Давайте мы»....
258 просмотров

Является ли (++x › ++x) корректным определением в С++?
Я немного читал о неопределенном поведении в отношении побочных эффектов и точек последовательности и их замене в C++11. ( Неопределенное поведение и точки последовательности ) Возник следующий вопрос. Имеет ли этот код определенное поведение?...
109 просмотров
schedule 30.01.2023