sequence-points

Nieokreślone zachowanie i punkty sekwencji

Co to są "punkty sekwencji"? Jaka jest relacja między nieokreślonym zachowaniem a punktami sekwencji? Często używam zabawnych ... ci zaczął się pomysł FAQ, więc Twoja odpowiedź najprawdopodobniej zostanie przeczytana przez tych kto wpadł na ten pomysł.)_

Dlaczego te konstrukcje używają niezdefiniowanego zachowania pre i post-increment?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++) ... 1 1 int x[2] = { 5, 8 }, y = 0; x[y] = y ++; printf("%d %d\n", x[0], x[1]); // shouldn't this print 0 8? or 5 0? }

Dlaczego te konstrukcje używają niezdefiniowanego zachowania przed-i po-inkrementacji?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++) ... 2 2 int x[2] = { 5, 8 }, y = 0; x[y] = y ++; printf("%d %d\n", x[0], x[1]); // shouldn't this print 0 8? or 5 0? }

Undefined behavior and sequence points

Potraktuj ten temat jako kontynuację następującego tematu: Poprzednia odsłona nieokreślone zachowanie i punkty sekwencji ... return *this; } Index & inc() { state++; return *this; } };

Dlaczego a = (A+b) - (b = a) jest złym wyborem dla zamiany dwóch liczb całkowitych?

Natknąłem się na ten kod do zamiany dwóch liczb całkowitych bez użycia zmiennej tymczasowej lub użycia operatorów bitowych. ... aby określić kolejność oceny. Moje pytanie brzmi: czy jest to dopuszczalne rozwiązanie do zamiany dwóch liczb całkowitych?

punkty sekwencji w c

Punkt sekwencyjny w programowaniu imperatywnym określa dowolny punkt wykonania programu komputerowego, w którym jest zagwa ... dne efekty uboczne z kolejnych ocen nie zostały jeszcze wykonane. Co to znaczy? Czy ktoś może to wyjaśnić prostymi słowami?

Jak działają operacje Prefix (++x) i Postfix (x++)?

Czy ktoś może mi powiedzieć jak naprawdę działają operatory prefix / postfix? Dużo szukałem w Internecie, ale nic nie znalazł ... o te operacje byłyby inne. Mam dwa pytania: Możesz wyjaśnić różnicę? Jak to ma zastosowanie do prefiksu innego operatora?

W C99 F () + g() jest niezdefiniowany czy tylko nieokreślony?

Kiedyś myślałem, że w C99, nawet jeśli efekty uboczne funkcji f i g ingerują i chociaż wyrażenie f() + g() nie zawiera punktu ... amierzam pisać tego typu rzeczy, to po to, aby wybrać najlepszą etykietę dla takiego stwierdzenia w analizatorze statycznym.