У меня есть следующий m[4] интервала кода = {1,2,3,4}, *y; y=m; *y = f (y ++);//Выражение Мой друг сказал мне, что Выражение A имеет четко определенное поведение, но я не уверен, корректен ли он...
A sequence point in imperative programming defines any point in a computer program's execution at which it is guaranteed that all side effects of previous evaluations will have been performed, and no ...
после прочтения о точках последовательности я узнал, что i = ++ i не определено. Так как насчет этого кода: int i;
int * p = & i;
int * q = & i; * p = ++ (* q); // это также должно быть неопределенным ...
#include < stdio.h > int main (void) {int i = 0; я = я ++ + ++ я; printf ("% d \ n", i); // 3 i = 1; я = (я ++); printf ("% d \ n", i); // 2 Должно быть 1, нет? volatile int u = 0; ты ...
Таким образом, я видел много статей, теперь утверждая, что на C++ проверенная дважды блокировка, наиболее часто используемая, чтобы препятствовать тому, чтобы несколько потоков пытались инициализировать лениво созданный одиночный элемент, повреждается. Но
Следующий код C выполняется правильно, но не так, как ожидалось. Оператор пост-инкремента здесь в z = z ++ создает путаницу здесь. Я не могу понять глупую ошибку / концепцию, Могу ли я иметь ...
Википедия говорит, что точки последовательности удерживаются от использования в C++ 11. Что это означает? Это означает, что неопределенные поведения, должные упорядочивать точки, не имеют никаких эффектов?
Я немного озадачен тем, как изменения в C ++ 17 влияют на правило, согласно которому вы не должны изменять одну переменную 2 раза между точками последовательности. Например, это указано, не указано или не определено ...
Рассмотрим следующую программу на C: int i = 0; int post_increment_i() { return i++; } int main() { i = post_increment_i();возврат i;
} Что касается версии стандарта C 2011 г. (...
Из документа GNU о volatile: минимальное требование состоит в том, чтобы в точке последовательности все предыдущие обращения к изменчивым объектам стабилизировались, и никаких последующих обращений не происходило. Хорошо, так что ...
Считайте эту тему продолжением следующей темы: Предыдущая статья Неопределенное поведение и точки последовательности Давайте вернемся к этому забавному и запутанному выражению (выделенные курсивом фразы ...
Я только что прочитал этот часто задаваемый вопрос SO C ++ о неопределенном поведении и точках последовательности и немного поэкспериментировал. В следующем коде gcc-4.5.2 дает мне предупреждение только в строке, упомянутой в комментарии к коду, ...
Что такое «точки последовательности»? Какова связь между неопределенным поведением и точками последовательности? Я часто использую смешные и запутанные выражения, такие как [++ i] = i;, чтобы чувствовать себя лучше. Зачем ...
Этот код взят из обсуждения, которое здесь происходит. someInstance.Fun (++ k) .Gun (10) .Sun (k) .Tun (); Четко ли определен этот код? Выполняется ли ++ k в Fun () перед k в Sun ()? Что, если k определяется пользователем ...
Связанный вопрос: Есть ли веская причина, по которой оператор присваивания не является точкой последовательности? Из часто задаваемых вопросов о comp.lang.c я могу сделать вывод, что указанная ниже программа не определена. Странно, но здесь упоминается т
Извините за повторное открытие этой темы, но само размышление над этой темой начало давать мне Неопределенное поведение. Хотите перейти в зону четко определенного поведения. Учитывая int i = 0;
int v [10];
...
У меня есть выражение в форме, показанной ниже:- while (count)
{
...
... index = ((count == 20)? 0 : index++);
...
...
} Теперь тернарные операторы являются точками последовательности в C, но я считаю, что ...
Может ли кто-нибудь сказать мне, как на самом деле работают операторы префикса / постфикса? Я много искал в Интернете, но ничего не нашел. Из того, что я могу сказать, префикс сначала увеличивает, затем выполняет операцию и ...
Является ли (++ i) ++ неопределенным поведением? Возможно ли, что побочный эффект приращения префикса происходит после получения увеличенного объекта для работы с приращением постфикса? Это могло показаться странным ...
Определена ли приведенная ниже программа для реализации, которая упаковывает f0 и f1 в один и тот же байт? struct S0 {беззнаковый f0: 4; со знаком f1: 4;
} l_62; int main (void) {(l_62.f0 = 0) + (...
Чтобы просто описать проблему, взгляните на код ниже: int main () {int a = 123; ({if (a) a = 0;}); вернуть 0; } Я получил это предупреждение из строки 4 [-Wsequence-point]: warning: ...
Я использую strcmp следующими способами Передача имен массивов char []
Передача указателей на строковые литералы
но второй результат - ошибка сегмента. хотя я подтвердил, что указатели указывают на исправление ...
В следующем типе кода есть точка последовательности между конструкциями каждой переменной или результат не определен? int a = 0;
int b = a ++, c = a ++; Мне не удалось найти в стандарте a ...
Я знаю, что написать что-то вроде ++a = a++; Не только нечитаем, но и нарушает точки последовательности c/c++. Откуда берутся эти ограничения? Как можно увидеть эти "проблемы" раньше...
Для этого невариативного примера: int Func1();
двойная функция2();
недействительным MyFunc (целое, двойное число); основной ()
{ MyFunc( Func1(), Func2()); //...
} не указано, является ли Func1() или Func2(...
Теперь, когда новый стандарт c ++ 11 внес изменения в способ описания точек последовательности, я пытаюсь выяснить, что именно изменилось между c ++ 03 и c ++ 11. В частности, есть ли какие-нибудь ...
В спецификации html5 говорится, что: Схема для элемента секционирования содержимого или корневого элемента секционирования состоит из списка из одного или нескольких потенциально вложенных секций. Раздел - это контейнер, который ...
Есть ли точка последовательности между выражениями инициализации членов структуры? Например, хорошо ли определено, что приведенный ниже код всегда будет печатать «a, b»? #include typedef struct ...